免费申请通配符类型SSL证书

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
.cn 域名,1个 12个月
云解析 DNS,旗舰版 1个月
简介: 记一次把网站从http升级到https的全过程,实现免费申请通配符类型SSL证书,证书可自动更新,自动更新后可自动部署

折腾起因

最近做了个小网站wawoo.fun,一个做mac壁纸的小网站,网站还处在初级阶段,不能跟大神的比。网站发布后发现因为没有使用https,谷歌浏览器会在地址栏提示网站不安全。因此想提升下网站的逼格,把网站由http升级为https。

阿里云免费证书只支持单域名

我买的是阿里云的服务器,因此想到之前看到阿里云有送免费的https证书,遂打开阿里云证书申请页面,发现赠送的免费证书只支持单域名的。我的站点至少需要一个支持wawoo.fun和www.wawoo.fun的证书,申请两个单域名证书,然后再在nginx中分别配置,这个太low了,不是我想要的,通配符证书才是我想要的,但是阿里云的通配符证书太贵了,不是我这个小站长消费的起的,于是放弃阿里云的证书,寻找其他方案。

Let's Encrypt提供免费通配符证书

经过搜索发现,真的有提供免费通配符类型证书的机构,那就是Let's Encrypt,Let's Encrypt已为1.8亿个网站提供了HTTPS证书,它是一个非盈利性证书颁发机构,其颁发的证书受所有主流浏览器厂商的信任,安全可靠。

Let's Encrypt证书申请客户端选择

申请Let's Encrypt的免费证书,需要使用Let's Encrypt的证书申请客户端,官方推荐的是certbot,是脚本类型的,其他的证书申请客户端还有很多。遂搜索了一下大家常用的证书申请客户端,比较常用的是acme.sh,和certbot一样是脚本类型的,试用了一下,确实很强大,在配置了阿里云的域名解析API接口授权参数后,可以自动更新证书,更新后自动重启nginx,超级方便。

遇到问题:证书自动更新后无法自动多节点部署

在准备使用acme.sh后,突然发现一个问题,就是如果我以后要扩充nginx容器的数量,证书自动更新就有问题了,多个容器内acme.sh会各自更新各自的,就会生成多个不一样的证书,而且一旦我的容器个数超过5个,同时更新会触法Let's Encrypt的证书更新请求速率限制,导致5个之外的所有容器都会更新失败,这个不利于以后容器的扩展。而且如果我需要在阿里云的CDN中部署证书,还要在每次证书更新后手动将证书上传到阿里云的CDN中,很不便捷。

找到答案:OHTTPS可在证书更新后自动部署至多节点

为了解决上面的问题,并充分发扬我懒的本质,我又开始了我的搜索之旅,经过了持久的搜索后,发现了这个宝藏站点ohttps.com,这个网站提供了我想要的所有功能。OHTTPS提供了证书的申请、吊销、到期前通知、自动更新、更新后自动部署,并可自动部署至阿里云或腾讯云的负载均衡、CDN或证书列表中,还可以部署至Nginx容器中,并支持多节点自动部署。哇,真是太棒了,这个正是我想要的功能啊,更棒的是提供了免DNS授权模式,也就是不需要提供阿里云域名解析API的accessKey和accessKeySecret就可以实现自动更新

使用OHTTPS创建证书

首先需要注册一个OHTTPS的账号,注册成功之后登录进去打开证书管理页面,点击创建证书,然后进入创建证书步骤:

  • 1、选择证书类型,这里我们选择泛域名证书,也就是通配符证书,然后输入我们的域名
  • 2、选则验证域名所有权方式,这里我们选择免DNS授权模式,然后它会提示需要添加1条CNAME类型的记录至DNS域名解析记录中,我们按照它的提示将记录添加至wawoo.fun的域名解析记录中

  • 3、点击创建证书,证书申请开始了
  • 4、1 ~ 2分钟之后证书申请成功,可以点击查看证书内容
  • 5、点击管理证书后,会在证书管理页面中看到我们申请的证书

在OHTTPS中创建证书Nginx容器部署节点

要使OHTTPS在证书自动更新后自动部署到Nginx容器中,我们需要先创建部署节点。选择部署节点菜单,点击添加节点,然后我们选择Docker - Nginx,点击生成令牌,这个令牌是在使用容器时会使用到的,下面我会使用到。

在OHTTPS中配置证书自动更新、自动部署

在证书管理页面中,选择我们刚才创建的证书,点击配置,在这里我们可以对证书进行配置:到期前是否进行通知、是否自动更新、更新后是否自动部署、部署至那些节点等。我们全部选择自动,然后将我们刚才创建的部署节点添加进来。

构建我们自己的nginx容器镜像

在OHTTPS中证书配置完成后,我们需要构建自己的nginx容器镜像。这里需要用到OHTTPS官方提供的ohttps/ohttps-nginx容器镜像作为基础镜像,这个镜像也是基于nginx官方镜像构建的,添加了证书更新功能,证书从服务器拉取过来之后,会存在容器内部的/etc/nginx/certificates文件夹下,证书文件具体存放位置如下:

  • 件私钥文件cert.key:
`/etc/nginx/certificates/${证书ID}/cert.key`
  • 证书文件fullchain.cer:
`/etc/nginx/certificates/${证书ID}/fullchain.cer`

其中证书ID是我们创建完证书后生成的证书ID,在证书管理页面可以看到。然后我们可以在我们自己的nginx配置文件中使用证书文件:

ssl_certificate     /etc/nginx/certificates/cert-o17xk289ev09d43l/fullchain.cer;
ssl_certificate_key /etc/nginx/certificates/cert-o17xk289ev09d43l/cert.key;

设置完nginx配置文件nginx.conf之后,我们需要编辑我们自己的Dockerfile文件,用以构建我们自己的镜像。在Dockerfile文件中,需要设定两个环境变量:

  • PUSH_NODE_ID:就是我们创建的部署节点的ID,在部署节点管理页面可以看到
  • PUSH_NODE_TOKEN:就是我们创建部署节点时点击生成的32位的Token

下面是Dockerfile文件:

FROM ohttps/ohttps-nginx:1.0.1
WORKDIR /etc/nginx
COPY ./nginx.conf /etc/nginx/nginx.conf
ENV PUSH_NODE_ID='push-k7l13g8j30xm9qp4'
ENV PUSH_NODE_TOKEN='0bfff9fc3024453819c4f107a397ca86'

Dockerfile文件编辑完成之后,就可以生成镜像,然后我们就可以使用我们自己的镜像启动我们自己的nginx容器。这样就实现了在证书到期前,自动更新证书,并自动将证书推送至Nginx容器中,永远都不需要再担心证书过期了。

我写的OHTTPS使用简介不是很详细,具体怎么使用OHTTPS,还请看OHTTPS官方文档快速上手OHTTPS,具体怎么使用OHTTPS的Docker - Nginx类型部署节点,也请看OHTTPS官方文档部署节点 - Docker - Nginx

目录
相关文章
|
28天前
|
安全 数据建模 网络安全
阿里云SSL证书价格多少钱一年?单域名和通配符收费明细整理
阿里云提供多样化的SSL证书服务,包括免费及付费选项。免费版由DigiCert提供,适合基本需求,有效期为3个月。付费证书品牌涵盖WoSign、DigiCert、GlobalSign等,价格从238元/年起。不同品牌与类型的证书(如DV、OV、EV)费用各异,满足各类安全需求。详情及最新价格请访问阿里云官方页面。
|
2月前
|
应用服务中间件 Linux 网络安全
使用Certbot申请/续签ssl证书
使用Certbot申请/续签ssl证书
242 8
|
2月前
|
运维 安全 数据建模
阿里云免费SSL证书与付费SSL证书区别及免费SSL证书申请教程参考
免费SSL证书是阿里云为个人网站、开发测试或企业网站建设之初提供的SSL证书,以便满足其对HTTPS数据加密传输的基本要求,从而提高数据传输的安全性。本文为大家详细介绍阿里云免费SSL证书与付费SSL证书区别以及免费SSL证书申请教程。
阿里云免费SSL证书与付费SSL证书区别及免费SSL证书申请教程参考
|
2月前
|
安全 数据建模 网络安全
便宜多域名SSL证书申请平台推荐
【7月更文挑战第25天】
42 1
|
3月前
|
前端开发 小程序 应用服务中间件
在服务器上正确配置域名https证书(ssl)及为什么不推荐使用宝塔申请免费ssl证书
在服务器上正确配置域名https证书(ssl)及为什么不推荐使用宝塔申请免费ssl证书
214 4
|
4月前
|
云安全 算法 数据建模
阿里云SSL证书免费版申请流程,收费版证书收费标准及证书类型选择参考
SSL证书是实现网站https访问必须购买的云安全类产品,现在很多用户在网站做好之后,下一步通常都是给网站域名购买SSL证书实现网站的https访问,阿里云提供申请SSL证书服务,现在每个阿里云个人或企业用户(以实名认证为准)每年可以一次性申请20张免费Digicert DV单域名试用证书(以下简称免费证书),本文为大家介绍具体的申请流程和收费证书的最新收费标准以及不同种类的证书选择参考。
阿里云SSL证书免费版申请流程,收费版证书收费标准及证书类型选择参考
|
3月前
|
网络安全
阿里云申请Symantec 免费版 SSL证书提示 缺少必要的 审核材料 的解决办法
阿里云申请Symantec 免费版 SSL证书提示 缺少必要的 审核材料 的解决办法
|
3月前
|
网络协议 安全 应用服务中间件
阿里云申请免费ssl证书并配置nginx
阿里云申请免费ssl证书并配置nginx
263 0
|
4月前
|
弹性计算 安全 Java
阿里云服务器配置、(xshell)远程连接、搭建环境、设置安全组、域名备案、申请ssl证书
以下是内容的摘要: 在阿里云购买服务器并进行基本配置的步骤如下: 1. **准备工作**: - 注册阿里云账号:访问阿里云官网并注册新账号,输入用户名、手机号和验证码。 - 实名认证:在个人中心进行实名认证,建议选择企业实名,因为个人实名可能无法索取企业发票。
|
4月前
|
网络协议 Serverless 网络安全
阿里云函数计算自定义域名的SSL证书免费全自动申请及部署
阿里云函数计算简化了开发部署,让用户专注业务逻辑,降低了运维复杂性。然而,SSL证书支持需额外付费:免费证书有效期缩短至3个月,1年证书及自动化部署均收费。为节省成本,小微企业和个人开发者可以采用一套全自动、全免费的SSL证书申请、续签和部署方案。该方案包括自动向Let's Encrypt申请证书、使用阿里云OpenAPI更新证书以及在证书到期前提前申请。通过Win-Acme(Windows)实现,详细步骤包括设置win-acme、自动DNS验证和更新函数计算证书。
470 5