acme申请ssl证书
转载
acme申请ssl证书
# 安装 Acme 脚本
curl https://get.acme.sh | sh
# 如果下载失败
#curl: (35) TCP connection reset by peer
# 去能下载的主机复制过来
cat >> ~/.bashrc <<EOF
. "/root/.acme.sh/acme.sh.env"
EOF
. ~/.bashrc
# 设置为自动更新
acme.sh --upgrade --auto-upgrade
# 安装 Acme 脚本之后,请先执行下面的命令(下面的邮箱为你的邮箱)
~/.acme.sh/acme.sh --register-account -m xxx@qq.com
[root@yang ~]# ~/.acme.sh/acme.sh --register-account -m xxx@qq.com
# 80 端口空闲的验证申请
# 如果你还没有运行任何 web 服务, 80 端口是空闲的, 那么 Acme.sh 还能假装自己是一个 WebServer, 临时监听在 80 端口, 完成验证
#~/.acme.sh/acme.sh --issue -d *.xxx.com --standalone
# Nginx 的方式验证申请
# 这种方式需要你的服务器上面已经部署了 Nginx 环境,并且保证你申请的域名已经在 Nginx 进行了 conf 部署。(被申请的域名可以正常被打开)
# 貌似不能使用通配符的形式
~/.acme.sh/acme.sh --issue -d *.xxx.com --nginx
[root@yang ~]# ~/.acme.sh/acme.sh --issue -d *.xxx.com --nginx
[2021年 10月 13日 星期三 16:04:59 CST] Using CA: https://acme.zerossl.com/v2/DV90
[2021年 10月 13日 星期三 16:04:59 CST] Creating domain key
[2021年 10月 13日 星期三 16:04:59 CST] The domain key is here: /root/.acme.sh/*.xxx.com/*.xxx.com.key
[2021年 10月 13日 星期三 16:04:59 CST] Single domain='*.xxx.com'
[2021年 10月 13日 星期三 16:04:59 CST] Getting domain auth token for each domain
[2021年 10月 13日 星期三 16:05:05 CST] Getting webroot for domain='*.xxx.com'
[2021年 10月 13日 星期三 16:05:05 CST] Error, can not get domain token entry *.xxx.com for http-01
[2021年 10月 13日 星期三 16:05:05 CST] The supported validation types are: dns-01 , but you specified: http-01
[2021年 10月 13日 星期三 16:05:05 CST] Please add '--debug' or '--log' to check more details.
[2021年 10月 13日 星期三 16:05:05 CST] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
[root@yang ~]# ll /root/.acme.sh/*.xxx.com/
总用量 20
drwxr-xr-x 2 root root 4096 10月 13 16:07 backup
-rw-r--r-- 1 root root 380 10月 13 16:07 *.xxx.com.conf
-rw-r--r-- 1 root root 956 10月 13 16:04 *.xxx.com.csr
-rw-r--r-- 1 root root 148 10月 13 16:04 *.xxx.com.csr.conf
-rw-r--r-- 1 root root 1679 10月 13 16:04 *.xxx.com.key
# 安装证书到指定文件夹
# 注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的证书文件。
# 正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置,比如下面的代码
~/.acme.sh/acme.sh --installcert -d mydomain.com --key-file /root/private.key --fullchain-file /root/cert.crt
~/.acme.sh/acme.sh --installcert -d *.xxx.com --key-file /root/private.key --fullchain-file /root/cert.crt
#上面的 /root/private.key 以及 /root/cert.crt 是把密钥和证书安装到 /root 目录,并改名为 private.key 和 cert.crt
cat: /root/.acme.sh/*.xxx.com/fullchain.cer: 没有那个文件或目录
#=================
# 再来一次
# 上一次找不到nginx的conf配置文件
~/.acme.sh/acme.sh --issue -d cd.xxx.com --nginx
# 这次ok
[2021年 10月 13日 星期三 16:44:36 CST] Your cert is in: /root/.acme.sh/cd.xxx.com/cd.xxx.com.cer
[2021年 10月 13日 星期三 16:44:36 CST] Your cert key is in: /root/.acme.sh/cd.xxx.com/cd.xxx.com.key
[2021年 10月 13日 星期三 16:44:36 CST] The intermediate CA cert is in: /root/.acme.sh/cd.xxx.com/ca.cer
[2021年 10月 13日 星期三 16:44:36 CST] And the full chain certs is there: /root/.acme.sh/cd.xxx.com/fullchain.cer
~/.acme.sh/acme.sh --installcert -d cd.xxx.com --key-file /root/private.key --fullchain-file /root/cert.crt
[root@k8s-master ~]# ~/.acme.sh/acme.sh --installcert -d cd.xxx.com --key-file /root/private.key --fullchain-file /root/cert.crt
[2021年 10月 13日 星期三 16:45:20 CST] Installing key to: /root/private.key
[2021年 10月 13日 星期三 16:45:20 CST] Installing full chain to: /root/cert.crt
mkdir -p /usr/local/nginx/cert/
mv /root/private.key /usr/local/nginx/cert/cd.xxx.com.private.key
mv /root/cert.crt /usr/local/nginx/cert/cd.xxx.com.cert.crt
server {
listen 443 ssl;
server_name cd.xxx.com;
#return 301 http://cd.xxx.com;
#rewrite ^(.*)$ http://cd.xxx.com;
ssl_certificate /usr/local/nginx/cert/cd.xxx.com.cert.crt;
ssl_certificate_key /usr/local/nginx/cert/cd.xxx.com.private.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
include /etc/nginx/proxy2.conf;
proxy_pass http://zentao;
}
}
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。