acme.sh 实现了ACME 协议,它不仅可以为您的域名从 Let’s Encrypt 生成免费的证书,而且通过配套的自动更新功能,能够为证书自动续期。
基于 CentOS 7
安装 acme.sh
curl https://get.acme.sh | sh
打开 Godaddy
- 打开Godaddy开发者平台
- 打开API Keys
- Create New API Key(创建新的API Key)
创建新的 API Key
- 填写API Key的名称(可选)
- 环境(Environment)选择产品(Production)
- 保存生成的 Key 和 Secret
配置环境变量并生成证书
export GD_Key="gHzatxxxf8geRg7UGanJiaKyied2F"
export GD_Secret="RMuBD3tRixxxYDkGewPGY"
acme.sh --issue --dns dns_gd -d picokkplus.com -d '*.picokkplus.com'
安装nginx
yum install nginx
将证书导出到 nginx 目录(证书会被定期renew)
mkdir /etc/nginx/cert
acme.sh --install-cert -d picokkplus.com -d *.picokkplus.com --key-file /etc/nginx/cert/key.pem --fullchain-file /etc/nginx/cert/cert.pem
配置nginx
vim /etc/nginx/conf.d/picokkplus.conf
server {
listen 80;
server_name www.picokkplus.com picokkplus.com;
return 301 https://$server_name$request_uri;
root /data/html/picokkplus;
index index.html index.php;
}
server {
listen 443 ssl;
server_name www.picokkplus.com picokkplus.com;
ssl_certificate /etc/nginx/cert/cert.pem;
#填写证书私钥文件绝对路径
ssl_certificate_key /etc/nginx/cert/key.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
# TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
#将所有HTTP请求通过rewrite指令重定向到HTTPS。
client_max_body_size 500m;
location / {
root /data/html/picokkplus;
index index.html index.htm;
}
}
重载 Nginx
nginx -t
nginx -s reload