Ubuntu下使用acme创建letsencrypt免费泛域名SSL证书

使用acme.sh脚本在linux下自动创建 Let’s Encrypt证书,可以给网站加上SSL锁,并且是泛域名,免费

安装 acme.sh 脚本

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

此时系统有了 acme.sh 的命令

生成域名证书

采用自动dns验证的方式,以DNSPOD的域名解析为例

  1. 首先在DNSPOD的网站生成 APP_ID 和 APP_KEY

    登陆DNSPOD,安全设置,API Token,创建API Token 即可

  2. 生成证书
    1
    2
    3
    4
    # 将DNSPOD的API TOKEN 导入到系统变量中
    export DP_Id="abc123456"
    export DP_Key="sADDsdasdgdsf"
    acme.sh --issue --dns dns_dp -d '*.tinnypea.com'

使用acme生成的使用(以nginx为例)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 生成nginx可用的ssl证书
acme.sh --installcert -d *.tinnypea.com \
--key-file /home/ubuntu/ssl/tinnypea.com.key \
--fullchain-file /home/ubuntu/ssl/fullchain.cer \
--reloadcmd "sudo service nginx force-reload"
# 此时生成了 nginx可用的ssl证书,并且放在了 /home/ubuntu/ssl/目录下
# nginx做如下配置
cd /etc/nginx/sites-enabled
vi defalut
# 把80端口做301跳转到https 443
server {
listen 80;
server_name tinnypea.com,www.tinnypea.com;
return 301 https://www.tinnypea.com$request_uri;
}
vi /etc/nginx/nginx.conf
# http部分设置ssl证书的路径
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_certificate /home/ubuntu/ssl/fullchain.cer;
ssl_certificate_key /home/ubuntu/ssl/tinnypea.com.key;