建站-安装Let’s Encrypt颁发的SSL证书

By |

网站建成后,浏览器一直提示不安全。查了一些帖子,说需要安装SSL证书,地址栏处才能显示安全锁。咱是小门小户,没有付费SSL的预算,看不少人推荐Let’s Encrypt颁发的免费证书,口碑不错,决定就装这个了。

安装方法主要参考vultr官网上的文章,但该文对安装前的准备工作说的不是很清楚,造成一直安装失败。后来花了好几天时间才找到篇文章,又重新设置了一下,这才安装成功。遗憾的是那篇文章找不到了,只能提供官网上的链接,但我会将安装过程补充完整的。

官网安装文章:https://www.vultr.com/docs/install-lets-encrypt-ssl-on-one-click-wordpress-app

安装的先决条件:

1、已部署vultr一键安装式wordpress应用程序,且以root身份登录过。

vultr一键安装wordpress详见本站文章:https://sunny129.com/vultr-wordpress/

2、使用vultr自己的DNS解析IP地址和域名。如果用别的DNS就会安装失败!

登录vultr账户后在Products页面点“DNS”。

进入DNS页面后,点右上角的“+”。

进入添加页面后,填写域名和IP地址,最后点击“Add”即可。

添加完自动生成几条。最下边就是vultr的解析服务器ns1.vultr.com和ns2.vultr.com。

然后到你购买域名的地方,把DNS改为vultr的。

以我购买域名的地方namesilo为例。登录账户后,点击“domain manager”。

进入页面后,点击“一摞饼”状图标。

进入页面后,将服务器改为ns1.vultr.com和ns2.vultr.com,然后点击“SUBMIT”即可。

如果没有最后那个“一摞饼”状图标,就点前面“蓝色球”状图标,进入页面将里面的内容删除,“一摞饼”状图标就出来了。

改完设置可能需稍等片刻才会生效,试试用域名浏览自己的网站,能正常浏览就可以开始安装SSL证书了。

用Putty或Xshell 6登录VPS后台,然后按照官网教程进行操作,我对具体的操作步骤再做些补充。

一、更新Nginx站点配置文件。

1、停止Nginx服务。输入命令,然后回车。

service nginx stop

2、编辑Nginx配置文件:wordpress_http.conf和wordpress_https.conf。

(1)编辑wordpress_http.conf文件。输入命令,然后回车。

nano /etc/nginx/conf.d/wordpress_http.conf

在打开的文件中查找“server_name _”(就在开头前几行),并把“_”替换为自己的域名。我替换的是www.sunny129.com,用sunny129.com应该也可以,没具体研究。

按Ctrl+X退出文件,会问你是否保存文件,敲Y。

然后会问文件保存名称,直接敲回车。

(2)编辑wordpress_https.conf文件。输入命令,然后回车。

nano /etc/nginx/conf.d/wordpress_https.conf

在打开的文件中查找“server_name _”(也在开头前几行),并把“_”替换为自己的域名。我同样替换的是www.sunny129.com

退出、保存步骤同(1)。

二、下载Certbot

1、输入命令,然后回车。

sudo add-apt-repository ppa:certbot/certbot

会问你是继续还是退出,敲入enter后回车。

2、待上步完成,输入命令,然后回车。

sudo apt-get update

3、更新完成后,输入命令,然后回车。

sudo apt-get install python-certbot-nginx

三、获取并安装SSL证书

1、输入命令,然后回车。

certbot --nginx --redirect

2、提示输入邮箱。输入自己的邮箱,然后回车。

3、选择是否向你发送有关续订和安全性的通知。敲A,然后回车。

4、选择是否要与电子前沿基金会共享你的电子邮件,这是可选的。我敲的是N,然后回车。

5、询问要安装证书的域名,前面会有编号,直接敲编号然后回车即可。当出现“IMPORTANT NOTES:Congratulation!”等等文字说明证书安装成功(这里我忘记截图了)。

注意:如果使用的不是vultr自己的DNS,就会报错。我在这步卡了好几天。

四、更新Nginx配置以强制使用SSL

1、输入命令,然后回车。

nano /etc/nginx/conf.d/wordpress_http.conf

2、在server块中添加命令。

if ($scheme = http) {
    return 301 https://$server_name$request_uri;
} 

我添加在了最末尾。

3、退出并保存文件后,启动Nginx服务器。输入命令,然后回车。

service nginx start

注意:重启失败。我看不懂错误代码,只好使用最简单、粗暴的方式:重启VPS。然后重新进入后台再输入命令就能启动了。

五、续订SSL证书

证书的有效期是90天,过期之前要续订。Certbot可以自动执行续订过程。输入命令,然后回车。

certbot renew

后记:我第一次弄这些,技术一点都不懂,看代码就像看天书,Putty和Xshell 6也不会用,教程又写的不是很直接,安装过程可谓一步一坑。出了问题只能搜索,失败过好多次才安装成功。期间为了找到错误的地方,还新部署了2个VPS进行对比。不过好在最终解决了问题,也积累了经验,给自己点个赞。

发表评论

您的电子邮箱地址不会被公开。