主机迷主机迷

CentOS 6 下使用 acme.sh 在 Nginx 安装 Let’ s Encrypt 免费 SSL 证书的步骤

环境:CentOS 6,LNMP v1.3
假定网站的域名叫mydomain.net

安装 acme.sh

curl  https://get.acme.sh | sh

然后重新载入一下 .bashrc

source ~/.bashrc 

生成证书

acme.sh  --issue  -d mydomain.net -d www.mydomain.net  --webroot  /home/wwwroot/mydomain.net/

注意,上面这个命令将会在 /home/wwwroot/mydomain.net 创建一个 .well-known 的文件夹,同时 Let’ s Encrypt 将会通过你要注册的域名去访问该文件夹下的文件来确定权限,即会访问 http://www.mydomain.net/.well-known/ 这个路径,所以你需要修改 Nginx 配置来确保按http://www.mydomain.net/.well-known/访问时能访问 /home/wwwroot/mydomain.net/.well-known 下的文件。

以下的配置参考自https://github.com/letsencrypt/acme-spec/issues/221。另外可参考https://www.5dzone.com/25.html

 location ^~ /.well-known {
    allow all;
    auth_basic off;
    alias /home/wwwroot/mydomain.net/.well-known/;
   }

安装证书

acme.sh --installcert -d mydomain.net  --keypath /usr/local/nginx/ssl/mydomain.key  --fullchainpath /usr/local/nginx/ssl/mydomain.cer --reloadcmd "/etc/init.d/nginx restart"

注意:/usr/local/nginx/ssl 这个目录要提前建好。
/etc/init.d/nginx restart 是LNMP v1.3中的Nginx重启命令

生成dhparam.pem文件,这个在一些vps上耗时要几分钟

openssl dhparam -out /usr/local/nginx/ssl/dhparam.pem 2048

Nginx配置

server {
listen 80;
server_name www.mydomain.net  mydomain.net;
rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443 ssl;
    ssl_certificate         /usr/local/nginx/ssl/mydomain.cer;
    ssl_certificate_key     /usr/local/nginx/ssl/mydomain.key;
    ssl_dhparam             /usr/local/nginx/ssl/dhparam.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    server_name www.mydomain.net mydomain.net;
    ...
}

自动升级acme.sh

acme.sh  --upgrade  --auto-upgrade

通过https://www.ssllabs.com/ssltest/analyze.html?d=mydomain.net能看到ssllabs对该网站的ssl评级
如果不配置 ssl_dhparam,Key Exchange显示为黄色,则评级是B,配置ssl_dhparam后评级为A

转载请注明出处 | 当前页面:主机迷 » CentOS 6 下使用 acme.sh 在 Nginx 安装 Let’ s Encrypt 免费 SSL 证书的步骤

评论

  • 请输入 9 + 4 = ? 的计算结果: