使用acme.sh部署CA证书

使用acme.sh申请CA证书

前情提要:我的服务器系统用的是Debian,并装有nginx。

安装acme.sh

  1. 下载脚本并安装

    1
    
    curl  https://get.acme.sh | sh
    
  2. 进入acme.sh的目录

    1
    
    ~/.acme.sh/
    
  3. 将本目录里的为acme.ch映射一个全局别名acme.sh,方便在其他路径下也能执行该脚本

    1
    
    alias acme.sh=~/.acme.sh/acme.sh
    

生成证书

  1. 关闭nginx或其他占用80端口的应用或服务,nginx可以这样操作:
1
  nginx -s stop
  1. 生成证书(官方的做法其实并不是这个,这个我是从一篇安装harbor的教程里看到的,但因为我觉得这个写起来更简单些,我这里用这种方法)
1
sh acme.sh  --issue -d www.xxx.com   --standalone #这里的-d后面接的就是你想要为其申请CA证书的域名
  1. 证书生成了三种:普通证书、中级证书和完整链条证书,我在看官方教程之前放的是普通证书,在写教程的时候才发现准确来说应该放完整链条证书。 把证书的路径配置到nginx里(这里是我主域名,即www域名的配置):
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
server {
    listen 443 ssl http2;
	listen [::]:443  ssl http2;
    root /home/git/hexo;
    index index.html;
    server_name www.alexc.cn;
    ssl on;
    ssl_certificate /root/.acme.sh/alexc.cn/fullchain.cer; #这里放的是证书
    ssl_certificate_key /root/.acme.sh/alexc.cn/alexc.cn.key; #这里是证书秘钥
    ssl_session_timeout 5m;  
    ssl_protocols SSLv2 SSLv3 TLSv1.2;  
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";  
    ssl_prefer_server_ciphers on;  
    return 301 https://blog.alexc.cn;
}

因为偷懒所以我就没按照官方的建议把证书放到其他位置

  1. 再启动nginx:
1
nginx -s reopen

使acme.sh自动升级

作者原话:

目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.

1
acme.sh  --upgrade  --auto-upgrade
updatedupdated2020-06-302020-06-30
加载评论