阿里云函数计算自定义域名的SSL证书免费全自动申请及部署

本文涉及的产品
函数计算FC,每月15万CU 3个月
容器镜像服务 ACR,镜像仓库100个 不限时长
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 阿里云函数计算简化了开发部署,让用户专注业务逻辑,降低了运维复杂性。然而,SSL证书支持需额外付费:免费证书有效期缩短至3个月,1年证书及自动化部署均收费。为节省成本,小微企业和个人开发者可以采用一套全自动、全免费的SSL证书申请、续签和部署方案。该方案包括自动向Let's Encrypt申请证书、使用阿里云OpenAPI更新证书以及在证书到期前提前申请。通过Win-Acme(Windows)实现,详细步骤包括设置win-acme、自动DNS验证和更新函数计算证书。

阿里云函数计算大大简化了开发部署的工作量, 用户只需聚焦于业务逻辑的开发,编写最重要的 “核心代码”; 不再需要关心服务器购买、负载均衡、自动伸缩等运维操作; 极大地降低了服务搭建的复杂性,有效提升开发和迭代的速度。

但是在使用过程中发现,对SSL证书的支持需要支付额外费用, 具体体现在

  1. 免费证书从原来的1年免费缩短到3个月, 极大增加了维护工作量。 所有1年有效期的证书都需要收费。
  2. 自动化的托管SSL部署需要额外收费。 否则只能手动部署,也太痛苦了。
    上面这笔费用虽然不多, 但对于小微企业/个人开发者来说也是一笔费用。因此设法实现了一套全自动, 全免费的SSL证书申请, 续证并部署到函数计算的方案。

基本思路

  1. 自动向Let's Encrypt申请ssl证书
  2. 用阿里云OpenAPI提供的updatecustomdomain,自动更新证书
  3. 证书到期之前自动申请新的ssl证书

系统环境

本人用的系统环境描述如下:

  1. 服务端,FastAPI, Python 3.10, Linux
  2. 开发者电脑, Windows 11, Win-Acme, Visual Studio, .NET Core

具体步骤

1. 自动向Let's Encrypt申请ssl证书

win-acme官网下载并安装win-acme

官网下载分推荐版本和全插件版本,如果下载的是推荐版本,里面不包括dns验证插件,为了实现自动dns验证, 还需要单独下载岸装自动验证插件,我的域名托管在阿里云所以用阿里云插件,插件在这里下载, 仅需下载针对aliyun的即可。 其他域名服务商下载对应的插件。下载后解压缩到win-acme的根目录。

工具都准备好之后,以管理员身份启动Windows Command, 进入win-acme安装目录, 并运行

.\wacs.exe

管理员身份启动的目的是为了自动把renew证书的命令加入到计划任务中, 不以管理员运行会导致此步骤失败,只能手工添加

在上述命令后面加上--verbose, 显示详细信息, 加上--nocache, 可在同一天内重复申请同一个域名(调试时特别有用)

启动后第一个界面如下

image.png

这里选择M

image.png

选择2或者直接Enter

image.png

直接Enter选择默认

image.png

这里选择2

image.png

此处要注意选择6, [dns] Create verification records in ALiYun DNS

image.png

** 然后win-acme问你所使用的阿里云dns服务器名称, 这里是名称列表, 复制粘贴过来

image.png

这里是询问阿里云OpenAPI的accessKey和accessSecret. 点击阿里云右上角的登录头像,然后选择“AccessKey 管理”。 可以创建accesskey.

把accessKey和accessSecret复制粘贴过来,并根据提示保存到vault供以后使用。此处我在之前的操作中已经保存到了vault,所以直接使用了

image.png

Private Key类型, 直接选择默认

image.png

选择证书存储位置,我们把证书保存为PEM文件,故选择2, 并提供文件位置c:\ssl\WinAcme

image.png

输入证书密码,我选择不需要密码

image.png

证书保存后的后续步骤, 这里先选择3,等准备好证书部署程序后再修改。
最后, 如果该host已经有了renew任务,还会询问是否覆盖。 选y覆盖已有, 选n创建新的renew任务

image.png

最后,申请并下载证书成功, 在c:\ssl\WinAcme中可看到证书文件已经生成。

2. 用阿里云OpenAPI提供的updatecustomdomain接口,自动更新证书

接口文档在此处可以找到

预置条件

由于使用的是UpdateCustomDomain接口, 因此需要先配置好自定义域名, 但不需要启用Https证书,设置自定义域名比较简单,请自行查阅文档。不在此赘述。

使用OpenAPI调试工具,测试UpdateCustomDomain的调用结果。 调用成功后下载所擅长语言的sdk,直接获得可执行的脚本/程序。

但这样获得的脚本/程序只能做为测试用,放在生产环境还不行,因为Certificate和Private Key硬编码在代码中, 而最佳情况是从证书文件中直接读取。 此外还需要记录日志,方便以后排查。

因此我对C#版本的sdk程序做了以下改进

  1. 接收domain name做为输入参数
  2. appSettings中增加证书文件目录配置
  3. 用NLog记录日志
  4. 升级到了.net 6

修改后的代码下载地址: https://gitee.com/flyspirit99/update-ssl

运行命令,进行测试

UpdateSsl.exe yourhost.yourdomain.com

通过查看日志中记录的OpenAPI请求返回的HttpStatusCode, 以及阿里云中显示的证书名,可以确认请求是否成功, 成功的请求会更新文件名为{yourhost.yourdomain.com}-yyyyMMddhhmmss

至此,完成了读取证书文件并更新函数的证书。

3.证书到期之前自动申请新的ssl证书

在第一步中实现证书申请时,win-acme自动生成一个renew任务, 该任务每天重复运行,检查证书日期,如果临近过期则重新申请。

但是重新申请的证书只是存放在指定目录中, 现在需要把前两步的工作连接起来。申请证书之后自动调用UpdateSsl程序。

当被询问

Which installation step should run first?:

选择2, 运行一个程序,填入自己的可执行目录路径

image.png

参数填写证书域名: yourhost.yourdomain.com

这样,当申请证书成功之后,会自动调用UpdateSsl把证书更新到函数上。

注意: 要把程序的sppSettings.json和NLog.config复制到win-acme根目录,因为此时的工作路径是win-acme目录。

最后

用上述方法可以扩展到申请任何你名下域名的证书, 或者通配符证书,并部署到函数计算。

全面费,全自动,完美。

目录
相关文章
|
6天前
|
人工智能 机器人 Serverless
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
当云计算遇见具身智能,AI咖啡开启零售新体验。用户通过手机生成个性化图像,云端AI快速渲染,机器人精准复刻于咖啡奶泡之上,90秒内完成一杯可饮用的艺术品。该方案融合阿里云FunctionAI生图能力与安诺机器人高精度执行系统,实现AIGC创意到实体呈现的闭环,为线下零售提供低成本、高互动、易部署的智能化升级路径,已在商场、机场、展馆等场景落地应用。
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
|
6天前
|
消息中间件 运维 监控
爆款游戏背后:尚娱如何借助阿里云 Kafka Serverless 轻松驾驭“潮汐流量”?
阿里云 Kafka 不仅为尚娱提供了高可靠、低延迟的消息通道,更通过 Serverless 弹性架构实现了资源利用率和成本效益的双重优化,助力尚娱在快速迭代的游戏市场中实现敏捷运营、稳定交付与可持续增长。
|
12天前
|
消息中间件 存储 运维
嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%
云消息队列 Kafka 版 Serverless 系列凭借其秒级弹性扩展、按需付费、轻运维的优势,助力嘉银科技业务系统实现灵活扩缩容,在业务效率和成本优化上持续取得突破,保证服务的敏捷性和稳定性,并节省超过 20% 的成本。
|
24天前
|
弹性计算
阿里云域名备案流程(图文教程)2025年最新
2025年最新阿里云ICP备案流程图文教程,共5个步骤,最快2天完成备案。首先提交备案材料,阿里云初审(1个工作日内),通过后提交管局,接着进行工信部短信核验,最后等待管局审核(1-20天)。前4步最快1天完成,整体约2-21天。个人或企业均可操作,材料齐全更高效。需搭配阿里云中国大陆地域服务器备案。
221 17
|
19天前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
|
12天前
|
安全 数据建模 网络安全
阿里云SSL证书价格一年多少钱?单域名和通配符SSL证书收费价格表
阿里云SSL证书提供免费及多种付费选择,免费版为DigiCert品牌,有效期3个月。付费证书涵盖DV、OV、EV类型,支持DigiCert、GlobalSign等品牌,价格从238元至万元不等,满足不同网站安全需求。
133 0
|
12天前
|
安全 数据建模 网络安全
阿里云申请SSL证书价格多少钱一年?免费版和付费版手动整理
阿里云SSL证书提供免费及多种付费选择,免费版为Digicert品牌,有效期3个月。付费证书涵盖DV、OV、EV类型,品牌包括DigiCert、GlobalSign等,价格从238元至万元不等,满足不同网站安全需求。
|
3月前
|
安全 数据建模 应用服务中间件
阿里云SSL证书价格、证书类型及免费版证书申请和证书部署教程参考
阿里云SSL证书有收费版也有免费版,收费版DV域名级SSL类型405元起,免费版证书为DV域名级SSL类型,每个实名个人和企业主体在一个自然年内可以一次性领取20张免费证书。本文为大家详细介绍阿里云SSL证书价格情况,包括不同域名类型、证书类型、证书等级和证书品牌的相关收费标准,以及免费版证书的申请和部署教程参考。
|
7月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
6月前
|
算法 应用服务中间件 网络安全
阿里云WoSign“国密RSA双SSL证书”应用实践
阿里云WoSign品牌SSL证书是阿里云平台热销的国产品牌证书之一,支持签发国密合规的SM2算法SSL证书以及全球信任的RSA算法SSL证书,能够满足平台用户不同的SSL证书应用需求,同时为用户提供国密模块支持,实现“国密/RSA双证书部署”。
650 6
阿里云WoSign“国密RSA双SSL证书”应用实践

相关产品

  • 函数计算