所有问题解决方案
我们都已亲身测试

DNMP环境下用acme.sh自动签发和更新基于Nginx站点的LetsEncrypt SSL Https证书

本文相关内容基于如下环境及工具:
CentOS 8安装DNMP(Docker+Nginx+Mysql+PHP)
acme.sh from GitHub

首先安装acme.sh:

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

或者

wget -O -  https://get.acme.sh | sh

CentOS8下安装完后发现并没有在/root/.bashrc中添加好alias
于是我们手工编辑添加一下vi ~/.bashrc,添加如下内容保存:

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

使之生效:

source ~/.bashrc

接下来我们开始签发证书:
#acme.sh –issue -d 域名 -w 网站所在的目录

acme.sh --issue -d www.51jiejue.com -w /home/dnmp/www/www.51jiejue.com

如果出现/.well-known相关Url路径的错误提示,可能是因为站点禁止访问生成/.well-known相关的验证Url,此时只需要在nginx的.conf文件上加入以下配置,允许访问即可:

location ~ /.well-known {
  allow all;
}

完成后会提示相关证书存放的位置,接下我们安装证书:
#acme.sh –install-cert -d 域名 \
–key-file Key的目录路径 \
–fullchain-file cert证书的目标路径

mkdir -p /home/dnmp/services/nginx/ssl/51jiejue
acme.sh --install-cert -d www.51jiejue.com \
--key-file       /home/dnmp/services/nginx/ssl/51jiejue/key.pem  \
--fullchain-file /home/dnmp/services/nginx/ssl/51jiejue/cert.pem

安装完成后,证书会自动复制到目标地址。
最后我们只需要在nginx的站点配置文件.conf加上相关的站点配置即可:


server {
    listen   443 ssl http2;
#.....................

    ssl_certificate /ssl/51jiejue/cert.pem;
    ssl_certificate_key /ssl/51jiejue/key.pem;

#...................
   
}

如何将证书转换成IIS站点用的pfx格式证书:

cd /root/.acme.sh/www.51jiejue.com
openssl pkcs12 -export -out my.pfx -inkey www.51jiejue.com.key  -in fullchain.cer

此时会要求你输入2次届时导入要用的密码,完成后即可导入到iis中使用了。

赞(2)
未经允许不得转载:无忧解决网 » DNMP环境下用acme.sh自动签发和更新基于Nginx站点的LetsEncrypt SSL Https证书
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!