cme.sh 生成免费证书,维护证书
admin
2024-03-15 21:40:08

什么是acme.sh

用shell脚本从Let’s Encrypt 或 zerossl 两个颁发证书的源站,获取ssl证书, 并定期维护的一个开源产品。在证书过期前,自动更新。为我们带来了开源的便利, 同时也节省了维护证书的所花的时间成本。

生成证书的流程

  1. 安装acme.sh

    curl https://get.acme.sh | sh -s email=my@example.com
    
       //切换到let's encrypt源颁发机构
    /root/.acme.sh/acme.sh --set-default-ca --server letsencrypt
    

    这里my@example.com可以随便填, 个人建议还是用自己的邮箱,本人的一个域名因为特殊字符没有自动更新, 会提前发邮件通知到。

  2. 下载生成证书

    acme.sh --issue -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
    

    www.mydomain.com是申请证书的域名, /home/wwwroot/mydomain.com 是域名对应的项目目录

  3. 复制证书到系统中证书所在的目录

    acme.sh --install-cert -d example.com \
    --key-file       /path/to/keyfile/in/nginx/key.pem  \
    --fullchain-file /path/to/fullchain/nginx/cert.pem \
    --reloadcmd     "nginx -s reload"
    

遇到的一些问题

  1. 生成证书时,提示“Verify error , Connection refused” 或者 404

    提示“Verify error: Fetching http://domain/.well-known/acme-challenge/lf-SJ97SVZRiumXXaPn-ZLVO7Vom10jAfRVzLp61SNc: Connection refused”

    或者 “Verify error: Invalid response from http://domain/.well-known/acme-challenge/L9Hqu3SPv7d3exJY7csWQnuPj6tnG5Tpzt4KUiftzlE: 404”;

    这里在项目目录做验证时用到的是http请求,而我的nginx只配置了https,http请求得不到响应,影响了验证。 所以将http请求重定向到https。 在nginx的配置文件中加入了下面代码

server {listen 80;server_name domain.com;# Redirect all port 80 (HTTP) requests to port 443 (HTTPS).return 301 https://domain.com$request_uri;}

重启nginx后, 再次生成证书,成功。

2.注意:acme.sh从 Let’s Encrypt获取时有次数、频率的限制

刚开始使用acme.sh时, 频繁生成证书用于测试、实验。 超过了规定的次数后, 
会报“`too many certificates already issued for exact set of domains`”。  官方文档给出的是: 同一个注册域名, 每周生成的证书数量不能超过5张,否则会提示“`too many certificates already issued for exact set of domains`”。还有其他的限制, 比如同一个ip地址,3小时内最多可创建10个账户。  要注意一些,以免影响自己的业务。链接:[https://letsencrypt.org/zh-cn/docs/rate-limits/](https://letsencrypt.org/zh-cn/docs/rate-limits/)

3.acme.sh 使用Zerossl作为证书颁发机构。

 acme.sh 从v3开始 默认使用Zerossl做成证书颁发机构。如果不加 acme.sh --set-default-ca --server letsencrypt, 切换到letsencrypt。 就需要先注册账号,
acme.sh  --register-account  -m myemail@example.com --server zerossl

这里对本机系统的openssl版本有要求, 我的是1.0.2k-fips, 会提示“Usage: _hmac hashalg secret [outputhex]”。 所以需要更新openssl最新版 ,这里自行去百度一下,更新完后,再次注册,会成功。

但是在下载证书是,一直提示超时,这个问题还没有解决, 所以暂时先用let‘s encrypt。

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...