本文相关内容基于如下环境及工具:
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中使用了。