当前位置: 首页 > Linux

使用acme.sh自动生成证书从letsencrypt安装到Nginx

时间:2023-04-07 00:48:27 Linux

1.安装acme.shcurlhttps://get.acme.sh|shreload.bashrcsource~/.bashrc2.生成证书acme.sh支持两种HTTP和DNS两种验证方式来验证域名所有权。DNS验证方法包括自动和手动方法。自动验证是利用域名解析商提供的API,自动添加txt记录完成验证。acme.sh支持自动集成验证数百家解析商域名所有权。下面使用acme.sh支持的阿里云自动验证域名权属。第一步是登录你的阿里云账号获取你的APIkey,获取阿里云的AccessKey地址。建议创建并使用子账号生成AccessKey,并赋予子账号管理域名系统(DNS)的权限。拿到Key和Secret之后,去终端生成环境变量。exportAli_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"exportAli_Secret="jlsdflanljkljlfdsaklkjflsa"第二步生成证书。-d后面是域名,也可以一次生成多个域名证书。acme.sh--issue--dnsdns_ali-dexample.com-dwww.example.com可以根据需要直接生成通配域名证书。acme.sh--issue-dexample.com-d'*.example.com'--dnsdns_ali证书生成后acme.sh会自动保存APIID和APIkey,保存到~/.acme.sh/account.conf,下次使用阿里云API时不需要指定阿里云的AccessKey。3、安装证书前生成的证书默认生成在~/.acme.sh/目录下。以Nginx为例安装证书acme.sh--installcert-d'*.example.com'\--key-file/etc/nginx/cert/'*.example.com.key'\--fullchain-file/etc/nginx/cert/'*.example.com.pem'\--reloadcmd"sudoservicenginxforce-reload"上面的命令会将证书复制到/etc/nginx/cert/目录下并重启Nginx.上面指定的所有参数都会自动记录下来,以后自动更新证书后会自动再次调用。需要注意的是,上面的--installcert命令后面是sudoservicenginxforce-reload参数。成功执行的前提是在系统服务中添加Nginx并设置相关脚本。有关添加到服务的设置的更多信息,请查看RedHatNGINXInitScript。证书安装配置完成后,访问SSLServerTest,输入域名测试证书。4.更新证书更新证书不需要任何操作。acme.sh会自动创建一个cronjob,每天0:00自动检测所有证书。如果证书即将到期,它会自动更新证书。参考资料一个ACMEShell脚本:acme.shacme.sh使用说明使用acme.sh安装Let'sEncryptforNginx提供的免费SSL证书原文地址https://github.com/liuvigongzuoshi/blog