在Nginx上部署 Let’s Encrypt 证书

公司微信小程序需要用到https,需要部署一下服务器。之前了解到有一款免费的证书服务,就拿来部署一下。

Let’s Encrypt

Linux基金会宣布它将托管Let’s Encrypt项目和互联网安全研究组(ISRG)。Let’s Encrypt CA项目由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,向网站自动签发和管理免费证书,加速将Web从HTTP过渡到HTTPS。ISRG则是开发Let’s Encrypt CA的非营利组织。

1、下载Let’s Encrypt客户端
首先我们要安装git

yum install -y  git

2、Let’s Encrypt的客户端源码

git clone https://github.com/letsencrypt/letsencrypt

这样,我们就成功的下载了Let’s Encrypt的客户端签发证书

3、进入Let’s Encrypt目录

cd letsencrypt

4、运行Standalone插件

./letsencrypt-auto certonly --standalone

在你运行插件后,Let’s Encrypt会进入初始化阶段,这时,你要输入一些信息,用于生成证书

①输入邮箱信息

 

②按提示输入相应的字母后,出现下面的图就代表证书生成成功

上面的这段文字提示了证书的存放位置和过期日期。我们配置Nginx证书时的证书文件和密钥文件都在那个目录下。其中fullchain.pem包含了网站证书和根证书链

5、配置nginx

修改我们的虚拟主机配置文件,在listen后面把80改成443,并加SSL,然后在下面加入我们的证书和密钥地址。

 listen 443 ssl;
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;

然后保存,退出,重启Nginx即可!

优化

1、重定向非HTTPS请求

server {
 listen 80;
 server_name example.com www.example.com;
 return 301 https://$host$request_uri;
}

2、设置自动更新证书

./letsencrypt-auto renew

由于证书是最近更新过的, 所以 renew 命令只检查过期时间

设置自动更新,每天更新一次并重启Nginx

crontab -e

0 4 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
5 4 * * 1 /etc/init.d/nginx reload

 

 

0
如无特殊说明,文章均为本站原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!