当前位置:首页 > 技术文章 > 正文内容

acme.sh 快速实现 https 证书颁发与自动续期

arlanguage3个月前 (02-01)技术文章22

200810-acme.sh 快速实现 https 证书颁发与自动续期

借助acem.sh来迅速实现 let's encrypt 的泛域名 ssl 证书颁发与续期,基本上五分钟就可以解决战斗

本文主要内容来自 acme.sh 的官方 wiki,一切以官方说明为准: acme wiki[1]

I. 安装步骤

1. 登录服务器

登录到某台 linux 服务器,我这里以 Centos 举例说明

ssh?xxx@xxx

#?切换root账号
su

2. 安装acme.sh

yum?install?socat?-y
curl??https://get.acme.sh?|?sh
cd?~/.acme.sh/

3. 申请密钥

到域名购买服务商,申请 api key,用于后期的 txt 记录验证

DNSPod

密钥申请完毕之后,如下操作导入命令

#?DNSPod
export?DP_Id="id"
export?DP_Key="key"

阿里云

ALY_KEY 和 ALY_TOKEN:阿里云 API key 和 Secrec 官方申请文档[2]

申请完毕之后,如下操作

export?Ali_Key="key"
export?Ali_Secret="secret"

godaddy

  • GODADDY_KEY 和 GODADDY_TOKEN:GoDaddy API 密钥官方申请文档[3]
export?GD_Key="key"
export?GD_Secret="secret"

其他

至于其他平台,应该如何导入 API key,可以参考下面的文档,这里不一一说明了

  • https://github.com/acmesh-official/acme.sh/wiki/dnsapi[4]

4. 证书生成

#?请注意,--dns后面的参数,一般来讲后缀就是上面的导入key的前缀
#?如果不确定,到上面的github连接中去找

#?针对?hhui.top?域名生成通配的证书
./acme.sh?--issue?--dns?dns_ali?-?d?*.hhui.top

证书生成之后,会在.acme.sh目录下,新生成一个 *.hhui.top(就是我们上面指定的通配域名) 文件夹,证书在里面

5. 安装证书

接下来将我们的证书安装到 nginx(当然也可以是 tomcat),下面的脚本除了安装之外,也添加了一个自动更新的任务(一般来说,60 天以后会自动更新,并会强制重启 nginx 使新的证书生效,可以通过 crontab -e看到对应的定时任务)

./acme.sh??--installcert?-d?*.hhui.top?--key-file?/etc/nginx/ssl/key.pem??--fullchain-file?/etc/nginx/ssl/cert.pem?--reloadcmd?????"service?nginx?force-reload"

6. nginx 配置

然后就是配置 nginx,支持 https

下面是一个基础的 nginx 配置实例

server?{
????server_name?blog.hhui.top;
????root?/home/yihui/xxx;
????index?index.html;

????gzip?on;
????gzip_buffers?32?4K;
????gzip_comp_level?6;
????gzip_min_length?100;
????gzip_types?application/javascript?text/css?text/xml;
????gzip_disable?"MSIE?[1-6]\.";?#配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
????gzip_vary?on;

????location?~*?^.+\.(ico|gif|jpg|jpeg|png)$?{
????????access_log???off;
????????expires??????1d;
????}

????location?~*?^.+\.(css|js|txt|xml|swf|wav|pptx)$?{
????????access_log???off;
????????expires??????10m;
????}

????location?/?{
????????try_files?$uri?$uri/?@router;
????}

????location?@router?{
????????rewrite?^.*$?/index.html?last;
????}

????listen?443?ssl;
????ssl_certificate?/etc/nginx/ssl/cert.pem;
????ssl_certificate_key?/etc/nginx/ssl/key.pem;
????ssl_stapling?on;
????ssl_stapling_verify?on;
????resolver?8.8.8.8?8.8.4.4?1.1.1.1?valid=60s;
????resolver_timeout?2s;
}

server?{
????if?($host?=?blog.hhui.top)?{
????????return?301?https://$host$request_uri;
????}

????listen?80;
????server_name?blog.hhui.top;
????return?404;
}

参考资料

[1]

acme wiki: https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E

[2]

API key 和 Secrec 官方申请文档:
https://help.aliyun.com/knowledge_detail/38738.html

[3]

API 密钥官方申请文档:
https://developer.godaddy.com/getstarted

[4]

https://github.com/acmesh-official/acme.sh/wiki/dnsapi: https://github.com/acmesh-official/acme.sh/wiki/dnsapi

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/2058.html

分享给朋友:

“acme.sh 快速实现 https 证书颁发与自动续期” 的相关文章

nginx实现内外网访问限制

对于特定新版本的上线,有些功能要求能实现内网用户可以访问验证,而外网实际用户使用不受影响,可以在nginx里实现。需求:1、内网访问http://m.xxx.com/movie/list 跳转到指定的链接http://m.xxx.com/newmovie/;2、外网访问不变nginx配置如下:loc...

nginx限制php程序“跨站”访问 nginx限制只能域名访问

我秀站外合作有一个需求:需在一台web服务器上增加一个虚拟主机用来做图片资源站,所用程序为第三方,担心有后门程序,因此希望最好隔断与原机器其他服务的关系。思考了一下,确实有一些风险存在。目前我们服务器上都统一使用nobody用户启动nginx和php,包括web目录,这些机器上部分有多个域名在一起运...

Nginx Lua编程基础

Lua是一门脚本动态语言,并不太适合做复杂业务逻辑的程序开发,但是,在高并发场景下,Nginx Lua编程是解决性能问题的利器。Nginx Lua编程主要的应用场景如下:API网关:实现数据校验前置、请求过滤、API请求聚合、AB测试、灰度发布、降级、监控等功能,著名的开源网关Kong就是基于Ngi...

网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击

一、简介对于网站来说,尤其是流量较大出名的网站,经常遇到攻击,如DDOS攻击等,虽然有些第三方,如Cloudflare可以挡,但对于动态网站PHP来说,只能挡一部分。这时候需要对于单个IP恶意攻击做出限流。nginx的两个模块可以限流。nginx两个限流模块:连接频率限制,ngx_http_lim...

博客引擎 hugo intro 入门介绍+安装笔记

拓展阅读blog-engine-01-常见博客引擎 jekyll/hugo/Hexo/Pelican/Gatsby/VuePress/Nuxt.js/Middleman 对比[1]blog-engine-02-通过博客引擎 jekyll 构建 github pages 博客实战笔记[2]blog-e...

域名备案流程总结

域名备案流程一、前言一般某个网站程序部署到云服务器上后,我们就可以直接通过”服务器主机IP:应用端口”的方式来访问该网站服务了,但这种方式非常不友好。对于广大用户而言,没几个人会记得住那一串IP数字地址。因此我们需要提供一个友好的名称来作为服务器主机IP的别名,让用户在浏览器输入别名就可以访问到网站...