安装 acme.sh curl https://get.acme.sh | sh
目录里就会出现acme.sh等文件
申请 SSL 证书 acme.sh --issue -d www.baidu.com -w /usr/local/nginx/conf/ssl/
注: 命令执行时 /usr/local/nginx/conf/ssl/ 创建一个 .well-known 目录, Let’ s Encrypt 将会通过你要注册的域名去访问那个目录来确定权限, 它可能会去访问 http://www.baidub.com/.well-known/ 如果遇到.well-known无法访问请看: Let 's Encrypt unauthorized 403 forbidden
执行后如果看到下列输出, 说明证书申请成功,并放到了 ~/.acme.sh/ 目录里面。
...
... 将 SSL 证书安装到网站的路径,并配置好 restart Nginx 的动作 ./acme.sh --installcert -d www.baidu.com --keypath /usr/local/nginx/conf/ssl/www.baidu.com.key --fullchainpath /usr/local/nginx/conf/ssl/www.baidu.com.key.pem --reloadcmd "sudo service nginx force-reload" 输出
Restarting nginx: nginx.
生成 dhparam.pem 文件 openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
Nginx使用SSL证书 server { listen 80 default_server;
listen 443 ssl; ssl_certificate /usr/local/nginx/conf/ssl/www.baidu.com.key.pem; ssl_certificate_key /usr/local/nginx/conf/ssl/www.baidu.com.key;
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
} 保存重启
验证 SSL 访问 ssllabs.com 输入你的域名,检查 SSL 的配置是否都正常: https://ssllabs.com/ssltest/analyze.html?d=www.baidu.com
后期维护 Let's Encrypt 的证书有效期是 90 天的, 到期需要重新renew申请. 使用系统定时任务来完成自动更新
0 0 1 "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null 一些注意事项 ssl_dhparam 未配置,将导致 ssllabs.com 的评分降到 B, 并给 This server supports weak Diffie-Hellman (DH) key exchange parameters. Grade capped to B. 的警告。
ssl_prefer_server_ciphers on 也是一个必要的配置,否则会 A+ 变成 A-;
如果你需要兼容老系统或老浏览器的话,你需要配置 ssl_ciphers,详见 Mozilla Server_Side_TLS 的介绍, Nginx 里面 ssl_ciphers 默认值是 HIGH:!aNULL:!MD5; ref