编程

个人博客免费申请安装SSL证书

Tickmao · 6月6日 · 2019年 · ·

我们经常在浏览网页会发现页面经常会显示「不安全」等字样。为保证网站内容的可靠性,需要对网站安装证书。由http转换为https。

本篇文章主要记录介绍imshusheng.spacesslforfree.com上获取免费证书,并安装到自己版权声明:文章转载请注明出处(www.mwkds.com)刚刚建立的WordPress博客上来。

申请SSL证书

申请SSL证书之前,必须要有自己已经绑定域名的服务器。在获取有效证书之前,sslforfree.com会验证申请者是否具有域名和服务器的归属权。验证时需要先登录网站主页:

浏览器输入:https://www.sslforfree.com

在文本框中输入域名,本博客域名:imshusheng.space。点击Create Free SSL Certificate

在当前页面依次选择Manual VerificationManually Verify DomainRetry Manual Verification。下拉页面即可看到下图。

依次进行如下操作:

1.选择1中出现的文件Download File #1Download File #2,将其下载下来;

2.在服务器根目录:比如我的网站根目录是在/var/www/html)下建立.well-known/acme-challenge文件夹;

3.将下载下来的文件上传至上面新建的文件夹里;

4.点击5中出版权声明:文章转载请注明出处(www.mwkds.com)现的链接,如果打开的页面显示的字符串和这两个文件内容一致的话,即表示验证OK;

5.然后点击下方的Download SSL Certificate,会跳转输入邮箱密码页面。

6.输入邮箱以创建该网站的账号密码,当证书到期之后,网站会发邮件提示你更新证书。点击Download All SSL Certificate Files,下载sslforfree.zip压缩包,里面即是ssl的证书和key文件。

安装SSL证书

重命名文件

将上述下载下来的sslforfree.zip解压,可以得到三个文件为了文件:ca_bundle.crtcertificate.crtprivate.key。为了便于识别,我们将证书文件certificate.crt命名为website.crt(比如我的为imshushengspace.crt)。将ca_bundle.crtcertificate.crt复制到服务器/etc/ssl目录下;将其中的private.key复制到到/etc/ssl/private下。

注:

/etc/ssl/private移动private.key时,有可能会移动版权声明:文章转载请注明出处(www.mwkds.com)失败,提示没有足够的权限。因为/etc/ssl/private默认的权限是drwx------。这时先执行命令s版权声明:文章转载请注明出处(www.mwkds.com)udo chmod 755 /etc/ssl/private,再进行复制操作。

开启SSL模式

apache服务器运行在加密的链接上,必须确保SSL模式已经开启。如果未开启的话,可以使用下面的命令:

sudo a2enmod ssl

在开始安装SSL之前,先使用下面的命令定位Apache的配置文件:

apachectl -S

应该会显示/etc/apache2/site-enabled/000-default.conf就是配置文件及其路径。

修改配置文件

输入以下命令来复制一个配置文件:

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/website-ssl.conf

注:

1.这里复制的路径是/etc/apache2/sites-available而不是/etc/apache2/site-enabled/。因为/etc/apache2/sites-available下的文件是真正的文件,而/etc/apache2/site-enabled/下面的只是在使能这个配置之后,创建的一个软链接而已。 2.为了便于识别,请将website-ssl.conf里面的website修改为你博客实际的域名(如我的为imshushengspace-ssl.conf

按照下面的说明修改/etc/apache2/sites-available/website-ssl.conf文件里的内容:

<VirtualHost *:443>         # 将原来的80端口改为ssl默认端口443
ServerName example.com      # 将修改example为你的网站域名
DocumentRoot /var/www/html  # 将修改/var/www/html为服务器上网站的真实路径
​
SSLEngine on 
SSLCertificateFile /etc/ssl/website.crt    # 将website.crt修改为/etc/ssl下重命名的证书文件
SSLCertificateKeyFile /etc/ssl/private/private.key
SSLCertificateChainFile /etc/ssl/ca_bundle.crt
</VirtualHost>

配置文件生效

执行以下命令使能配置文件:

sudo a2ensite website-ssl.conf     # 将命令中的website替换成2.3中复制的命名的配置文件

重启apache

sudo systemctl restart apache2.service

在地址栏中输入https://your-website.com,这时应该就能看到浏览器地址栏前面的小锁,表示已经使能ssl成功了。版权声明:文章转载请注明出处(www.mwkds.com)

调整默认配置

在地址栏输入imshusheng.space,发现仍然不是SSL加密的效果,因为如果直接输入域名或IP,默认走的80端口,需要将80端口重定向SSL端口。修改配置:

路径:/etc/apache2/sites-available/000-default.conf文件

ServerName www.yourdomain.com 
Redirect permanent / https://www.yourdomain.com/ 

www.yourdomain.com替换博客的域名。这时在地址栏中直接输入website.com,应该就能看到浏览器地址栏前面的小锁,表示已经成功设置为默认重定向到443端口了。

参考文档

Installing a SSL certificate on Apache

Apache Redirect to HTTPS

如需转载请务必注明“Mwkds”以及原文文章来源 。

0 条回应