生成免费且支持泛域名的的SSL证书
2022-01-17 974
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
简介: 使用acme为域名生成免费的通配符SSL
使用acme为域名生成免费的通配符SSL 安装acme.sh curl https://get.acme.sh | sh # 创建命令快捷方式 alias acme.sh=~/.acme.sh/acme.sh 生成证书 HTTP方式 使用的apache或nginx acme.sh --issue -d mydomain.com --apache/nginx
会自动读取配置来验证域名
没有使用这些服务器软件 acme.sh --issue -d mydomain.com -d --webroot /home/wwwroot/mydomain.com/需要指定域名, 并指定域名所在的网站根目录. acme.sh 会全自动的生成验证文件, 并放到网站的根目录, 然后自动完成验证. 最后会聪明的删除验证文件
DNS方式这种方式的好处是, 你不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可完成验证. 坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。
acme.sh --issue --dns -d mydomain.com然后, acme.sh 会生成相应的解析记录显示出来, 你只需要在你的域名管理面板中添加这条 txt 记录即可.等待解析完成之后, 重新生成证书:
acme.sh --renew -d mydomain.com也可以使用域名解析商提供的api来实现,并且能自动更新
这里以DNSPOD为例,打开密钥管理,密钥只会显示一次,不记得只能重新创建,创建完成记得保存
export DP_Id="your api id" export DP_Key="your api token" acme.sh --issue --dns dns_dp -d aa.com -d #以上信息自行替换 #生成通配符SSL acme.sh --issue --dns dns_dp -d aa.com -d *.aa.com这一步的过程就类似于在站长平台提交网站时,要验证域名所有者,推荐使用API的方式来部署,简单快捷
这里以本站域名作为示范
默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.
正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:
Apache example: acme.sh --install-cert -d example.com \ --cert-file /path/to/certfile/in/apache/cert.pem \ --key-file /path/to/keyfile/in/apache/key.pem \ --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \ --reloadcmd "service apache2 force-reload" Nginx example: 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 "service nginx force-reload"宝塔的话直接就可以复制证书内容,生成证书,并被存在证书夹里,根域名的任何子域名(二级域名,不支持大于二级以上的域名)都可以一键部署,很方便的。
宝塔操作示例
宝塔效果
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.
更新 acme.sh目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh --upgrade如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0 出错怎么办如果出错, 请添加 debug log:
acme.sh --issue ..... --debug或者:
acme.sh --issue ..... --debug 2请参考: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh
最后, 本文并非完全的使用说明, 还有很多高级的功能, 更高级的用法请参看其他 wiki 页面.
https://github.com/Neilpang/acme.sh/wiki
证书检测查看本站在又拍云的检测结果,跟免费单域名的SSL证书一样,在其他平台的需要手动续签,宝塔的需要实名认证,而这个支持泛域名,还能自动续签,一个字:香!
其他还有一个网站也能免费生成通配符SSL,但那个在又拍云检测结果是B,不如这个,就不推荐了。
可以配合又拍云的CDN还是很不错的,又拍云联盟的活动也很可