Let\'s Encrypt 泛域名证书申请过程 [ 江邊望海的技術人生 ]

此生再无相见时 提交于 2019-12-02 01:50:58

微洽作为一个在线沟通的WebIM,为了数据传输安全,站点支持SSL是标配。申请SSL证书首选 Let's Encrypt。今年3月14日官方宣布正式对 ACMEv2 和泛域名证书提供支持,为搭建全站的ssl提供的条件。

申请Let’s Encrypt数字证书,首选使用 acme.sh,亲测,申请和部署还是非常简单的。

首先安装acme.sh

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

如果acme.sh 命令未找到,执行一下这个 source ~/.bashrc

由于我的域名是阿里云购买的,需要验证所有权
export Ali_Key="xxx"
export Ali_Secret="xxxxxxxx"

获取Ali_Key 和 Ali_Secret的方法,其他地方注册的请参考这里

申请证书

设置好域名的密钥后,就可以执行申请命令了。

acme.sh --issue --dns dns_ali -d xxx.com -d *.xxx.com

# 如果出现下面的提示,说明申请成功了
[Mon Apr 30 15:35:14 CST 2018] Your cert is in  /root/.acme.sh/xxx.com/xxx.com.cer
[Mon Apr 30 15:35:14 CST 2018] Your cert key is in  /root/.acme.sh/xxx.com/xxx.com.key
[Mon Apr 30 15:35:14 CST 2018] The intermediate CA cert is in  /root/.acme.sh/xxx.com/ca.cer
[Mon Apr 30 15:35:14 CST 2018] And the full chain certs is there:  /root/.acme.sh/xxx.com/fullchain.cer

申请 大专栏  Let's Encrypt 泛域名证书申请过程 [ 江邊望海的技術人生 ]的证书会放到 ~/.acme.sh/ 目录里面,所有的 acme.sh 配置都记录在 ~/.acme.sh/ 目录里面,acme.sh 有自动的配置读取,并按域名划分,下次你再次执行的时候,它知道你之前是用的那个目录,只需要告诉它域名就好了。

安装证书
acme.sh --installcert -d xxx.com 
             --keypath       /data/nginx/ssl/xxx.com.key  
             --fullchainpath /data/nginx/ssl/xxx.com.key.pem 
             --reloadcmd     "/data/nginx/sbin/nginx -s reload"
# /data/nginx/ssl/ 是证书安装目录
# reloadcmd 是nginx 的reload 命令

#如果出现下面的提示,说明安装成功了
[Mon Apr 30 16:19:32 CST 2018] Installing key to:/data/nginx/ssl/xxx.com.key
[Mon Apr 30 16:19:32 CST 2018] Installing full chain to:/data/nginx/ssl/xxx.com.key.pem
[Mon Apr 30 16:19:32 CST 2018] Run reload cmd: /data/nginx/sbin/nginx -s reload
[Mon Apr 30 16:19:32 CST 2018] Reload success
修改 Nginx 启用 SSL
http {
  # 新增
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  # 兼容其他老浏览器的 ssl_ciphers 设置请访问 https://wiki.mozilla.org/Security/Server_Side_TLS

  server {
    listen 80 default_server;
    # 新增
    listen 443 ssl;
    ssl_certificate         /data/nginx/ssl/www.xxx.com.key.pem;
    ssl_certificate_key     /data/nginx/ssl/www.xxx.com.key;
    # ssl_dhparam
    ssl_dhparam             /data/nginx/ssl/dhparam.pem;

    # 其他省略
  }
}
检查 Nginx 配置是否正确后重启
/data/nginx/sbin/nginx -t
# 检查无误后,重启nginx
/data/nginx/sbin/nginx -s reload

另外,证书的有效期是三个月,证书续期可以执行

acme.sh --renew -d "xxx.com" -d "*.xxx.com" --dns
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!