为网站添加免费加密证书

免费证书很多,我选择的是Let’s Encrypt。
毕竟免费,需要每三个月续期一次。

1.下载certbot

git clone https://github.com/certbot/certbot
cd certbot

2.生成免费证书

./certbot-auto certonly --webroot --agree-tos -v -t --email 邮箱地址 -w 网站根目录 -d 网站域名

3.生成dhparams

openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048

4.配置nginx

在nginx配置文件中server中添加下列内容

listen 443

ssl on;
ssl_certificate /etc/letsencrypt/live/网站域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/网站域名/privkey.pem;
ssl_dhparam /etc/ssl/certs/dhparams.pem;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

把所有访问重定向到ssl,必须新建如下server段,在同一个server段下会陷入循环重定向。

server {
    listen 80;
    server_name your.domain.com;
    return 301 https://$server_name$request_uri;
}

5.重启nginx,over!

6.最后,关于续期

在certbot目录执行,和第二步略有不同,当然可以制作一个自动脚本。

./letsencrypt-auto certonly --renew-by-default --email 邮箱地址 -d 域名

执行完这一步重启服务。

发表评论