🔐 作为一名开发者,管理SSL证书曾经是一件让人头疼的事。特别是使用免费证书时,每三个月就要手动更新一次,稍有疏忽就可能影响线上服务。今天就来分享一个完美的解决方案 - httpsok。
一、痛点分析
1.1 免费证书的困扰
真实场景
使用免费的SSL证书(如Let's Encrypt)时,每三个月就需要更新一次。记得有一次周末正在休息,突然收到线上证书过期的告警,不得不放下手中的事情立即处理。这种情况在使用免费证书时经常发生。
免费证书带来的主要问题:
- 🕒 有效期只有3个月,需要频繁更新
- 📝 手动更新流程繁琐且容易出错
- 🚀 更新后需要重新部署配置
- 😓 更新时间难以把控,经常在非工作时间触发
- 💰 云厂商的自动化方案价格不菲
1.2 现有解决方案的局限
市面上方案的问题
-
云厂商提供的自动化证书管理:
- 收费较高
- 往往需要购买其他配套服务
- 被锁定在特定云平台
-
自建自动化方案:
- 需要自己维护服务器
- 配置复杂,容易出错
- 需要处理各种异常情况
二、httpsok 解决方案
2.1 什么是 httpsok
httpsok 是一个专注于解决SSL证书自动化管理的服务平台,它可以:
- 自动申请和续签免费证书
- 提供API接口实现自动部署
- 支持多域名管理
- 提供完整的监控告警
2.2 快速入门
使用 httpsok 只需要简单几步:
-
注册并登录 httpsok 控制台
-
申请证书:
- 在控制台点击"证书管理"菜单
- 添加需要管理的域名
- 选择需要申请的证书类型
- 验证方式DNS
- 选择证书厂商
- 输入备注
- 验证完成后系统会自动申请证书
-
证书下载安装
- 我这里是手动安装
- 下载证书
- 选择nginx服务,下载压缩包,放到服务器nginx路径下
- 调整好nginx配置文件,重启服务
# 两个文件
# 证书配置/etc/nginx/ssl.conf
# SSL证书配置
ssl_certificate /etc/nginx/ssl/_.bianliangrensheng.cn.pem;
ssl_certificate_key /etc/nginx/ssl/_.bianliangrensheng.cn.key;
# SSL配置优化
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 主配置 /etc/nginx/nginx.conf
# 博客站点 - HTTP重定向到HTTPS
server {
listen 80;
server_name bianliangrensheng.cn www.bianliangrensheng.cn;
return 301 https://bianliangrensheng.cn$request_uri;
}
# 博客站点 - HTTPS
server {
listen 443 ssl;
server_name bianliangrensheng.cn;
include /etc/nginx/ssl.conf;
root /model/blog/build;
index index.html;
location / {
try_files $uri $uri/ /index.html;
include /etc/nginx/cors.conf;
}
location /assets/ {
expires 30d;
add_header Cache-Control "public, no-transform";
include /etc/nginx/cors.conf;
}
location /img/ {
expires 30d;
add_header Cache-Control "public, no-transform";
include /etc/nginx/cors.conf;
}
}