首先确保你的网站是可以访问的( nginx 配置好 80 端口),申请证书时 let's Encrypt
会访问网站上的某一文件来确认网站归属(当然也可以通过 DNS 确认)。
acme.sh
GitHub: https://github.com/Neilpang/acme.sh
请仔细阅读 README.md
。
acme.sh
$ git clone https://github.com/Neilpang/acme.sh.git
$ cd ./acme.sh
$ ./acme.sh --install
# 脚本会自动建立别名
# Installing alias to '/home/ubuntu/.profile'
# 文件位于 ~/.acme.sh/
请使用绝对路径或将 ~/.acme.sh/
加入 PATH
$ acme.sh --issue \
-d mydomain.com \
-d www.mydomain.com \
--webroot /home/wwwroot/mydomain.com/
# ECC证书
$ acme.sh --issue \
-w /home/wwwroot/example.com \
-d example.com \
-d www.example.com \
--keylength ec-256
生成的文件位于 ~/.acme.sh/域名/
。
$ acme.sh --install-cert \
-d login.khs1994.com \
--key-file /data/etc/nginx/conf.d/lets-acme/login.khs1994.com.key \
--fullchain-file /data/etc/nginx/conf.d/lets-acme/login.khs1994.com.cer \
--ecc
请查看官方文档。
会安装很多依赖软件。
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto certonly --email 邮箱 \
-d 域名 -d 域名 \
--webroot -w 网站目录完整路径 \
--agree-tos
生成的证书位于 /etc/letsencrypt/live/
nginx 配置如下
ssl_certificate /etc/letsencrypt/live/域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/域名/privkey.pem;