FreeSSL申请免费证书
FreeSSL.cn 一个提供免费HTTPS证书申请的网站
一、地址https://freessl.cn/
输入域名点击创建免费的ssl证书
二、ACME域名设置
三、DCV配置
根据dcv配置在nginx中添加相应配置,配置完成重启nginx后检测
四、部署
这边使用acme进行部署,ACME安装步骤如下:
要安装 acme.sh,你可以按照以下步骤进行操作:
1.首先,使用以下命令下载 acme.sh-master.tar.gz 文件:
wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
2.解压缩下载的文件:
tar xvf master.tar.gz
3.进入解压后的目录:
cd acme.sh-master
4.运行以下命令以安装 acme.sh:
./acme.sh --install
此命令将在系统中安装 acme.sh 脚本,并创建必要的目录和文件。
注意:如果你没有 root 权限,可能需要在命令前加上 sudo。
5.安装完成后,你可以运行以下命令来设置你的 ACME 账户信息(这是一个单次设置):
./acme.sh --register-account -m your_email@example.com
将 your_email@example.com 替换为你的电子邮件地址。
执行acme.sh 部署命令
五、配置 Nginx 服务器以使用新证书
listen 443 ssl;
server_name your_hostName;
ssl_certificate fullchain的路径复制到这里,上面用红色框起来了;
ssl_certificate_key domainKey的路径复制到这里,上面用红色框起来了;
# 配置完成后重启nginx即可
注:证书生成后在目录下,一般不直接使用,因为这里面的文件都是acme.sh内部使用的,而且目录结构可能会变化,所以可以使用install-cert命令安装证书
正确的使用方法是使用--install-cert命令,并指定目标位置,然后将证书文件复制到相应位置,例如:
nginx:
./acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/example.com.key \
--fullchain-file /path/to/fullchain/nginx/fullchain.cer \
--reloadcmd "sudo service nginx force-reload"
以上命令执行后,会将证书复制到指定目录中,当证书更新后,acme.sh会自动将新证书更新到该目录。
注意:这里用的是 service nginx force-reload, 不是 service nginx reload, 据测试, reload 并不会重新加载证书, 所以用的 force-reload。
六、ssl验证
地址:https://www.myssl.cn/tools/check-server-cert.html
7、acme自动续期
60天后自动续期: ./acme.sh --install-cronjob
执行crontab -l 即可查看定时执行任务
执行crontab -e 修改定时任务
立即执行: ./acme.sh --cron
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步。
手动升级 acme.sh 到最新版: ./acme.sh --upgrade
设置自动更新: ./acme.sh --upgrade --auto-upgrade
关闭自动更新: ./acme.sh --upgrade --auto-upgrade 0
其他命令:
查看证书列表: ./acme.sh --list
强制更新证书: ./acme.sh --renew -f -d 域名
撤销证书: ./acme.sh --revoke -d 域名