喜欢穷折腾的阿汤哥
tangtr.cn

搭建网站(5)网站申请Let’s Encrypt泛域名证书升级HTTPS

HTTPS是一种通过计算机网络进行安全通信的传输协议。经由HTTP进行通信,但是利用SSL/TLS来加密数据包。现在大部分浏览器均对HTTPS有要求,在Chrome浏览器中,没有HTTPS的网站会提示不安全(像下图这样)。一个没有HTTPS的网站多少都会影响到用户的体验。这里介绍如何申请certbot泛域名证书。

证书介绍

Let’s Encrypt是一家提供免费,开放证书的公司,支持自动更新,同时支持泛域名证书的申请。泛域名相比单个域名更容易维护,例如有多个二级域名的网站,像本站的移动站和PC站点采用二级域名来区分,只要申请一个泛域名证书即可。

安装流程

根据官网安装流程安装即可,不同操作系统及配置文件可能稍有不同,具体请参考官方文档,这里只介绍Ubuntu16.04系统NGINX服务器下的安装。

1、安装certbot程序

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot / certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx 

2、申请证书

由于我的域名解析在DNSPOD,而certbot并没有支持DNSPOD的插件,所以只能手动申请。

$ certbot certonly -d *.tangtr.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

将上述命令中的“*.tangtr.com”更改为你自己的域名。

–manual交互式获取,–preferred-challenges dns使用DNS验证的方式(泛域名只能使用DNS验证),–server指明支持acme-v02的Server地址,默认是acme-v01的地址。

输入命令后,会提示以下内容。

软件要求域名在DNSPOD做域名解析,来到DNSPORD处,添加TXT解析。

点击添加记录,将红框处的一串数据填写到记录值处,将_acme-challenge.tangtr.com添加到主机记录处(填写你自己后台提示的网站)
添加好后像下面这样。

点击保存后,稍等片刻,在自己的电脑上打开命令提示符(CMD)

$ nslookup -q=txt _acme-challenge.tangtr.com

如得到如下应答对比一下certbot给你的数字是否一致,如一致表示成功,

再回到网站主机处按下回车等待结果。

显示congratulations表示申请成功了。

之后就是修改nginx配置文件。
讲一下代码修改后加入到server{}字段中

listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate //此处填写上图红色标记处fullchain.pem的路径;
ssl_certificate_key //此处填写上图红色标记处privkey.pem的路径;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

如果需要把http的访问全部转到https,再nginx配置文件中,添加如下代码

server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } 
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name www.example.com;
        return 404; 
    }

证书更新

certbot证书有效期为三个月,但是由于并没有支持dnspod的插件,所以现在还不能做到自动更新,其他的域名服务商是否有支持插件可以参考这里看是否有你的服务商。
手动更新只要重复上述申请步骤即可。

赞(0)
未经允许不得转载:汤忒热 » 搭建网站(5)网站申请Let’s Encrypt泛域名证书升级HTTPS

评论 抢沙发

评论前必须登录!