企业SSL 证书管理指南
文章从以下几个部分展开
- SSL证书的用途和使用场景
- SSL证书的申请类型和实现方式
- SSL证书的管理
- SSL证书的续签
一、SSL 证书的用途和使用场景
1.1 为什么要使用 SSL 证书?
1. 数据安全 🛡️- 在 HTTP 传输中,TCP 包可以被截获,攻击者可以直接获取数据内容(比如用户名、密码、API Key)。- HTTPS 通过 SSL/TLS 加密通信,即使数据被拦截也无法解密,有效防止中间人攻击(MITM)。2. 用户体验与信任 👀- 现代浏览器会对HTTP 站点标红,用户会看到“不安全”的提示,影响信任感。- HTTPS 站点 会在地址栏显示 小绿锁 🔒,提升安全感和专业度。3. 合规性与政策要求 📜- 某些服务强制要求 HTTPS(如:Google 强制要求 HTTPS,HTTP 网站会影响 SEO 排名)。- PCI DSS(支付卡行业数据安全标准)等要求敏感数据必须加密传输。
1.2 SSL 证书的主要使用场景
1. 对外提供 Web / WebSocket 服务 🌐常见场景:- Web 服务器(Nginx、Apache、Tomcat)- WebSocket 服务器(用于即时通讯、在线协作)2. API 保护 & 认证 🔑- API Server(Restful API / GraphQL / gRPC)- 需要确保API Key、JWT Token 传输安全,防止泄露3. 企业内部服务 & 远程办公 🏢- 内部管理系统(如 Jenkins、GitLab、Kubernetes Dashboard)- VPN / 远程桌面 也需要证书加密,防止流量被窃取
1.3 证书申请方式及适用场景
| 方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| AWS ACM 证书 | AWS 负载均衡、CloudFron | 自动续期、免费 | 仅限 AWS 内部使用 |
| Cloudflare SSL | 域名托管在 Cloudflare | 免费、隐藏源站 | 不能直接访问源站 |
| 购买商业 SSL | 企业、银行、电商 | 可信度高 | 费用高,需要手动续期 |
| 自签名 SSL | 内部测试、私有 API | 免费、灵活 | 浏览器不信任,不适合公网 |
| Cloudflare Tunnel | 服务器无公网 IP | 免证书、隐藏源站 | 依赖 Cloudflare,只适用于小型企业 |
| 公网免费证书 | 公司内部访问、个人网站 | 有自己的域名即可 | 3个月到期需要考虑续期,可以通过api自动续期 |
二、证书的管理
上一篇的1.3中已经列出了证书的申请方式,我接下来演示公网免费证书的申请
切记每一种方式都有适用场景,用什么完全取决于业务需求
由于是在route53下创建需要用到aws凭据和IAM用户 key
2.1、IAM权限
{"Version": "2012-10-17","Statement": [{"Sid": "Route53DNSValidation","Effect": "Allow","Action": ["route53:GetChange","route53:ChangeResourceRecordSets","route53:ListResourceRecordSets"],"Resource": ["arn:aws:route53:::hostedzone/*","arn:aws:route53:::change/*"]},{"Sid": "Route53ListHostedZones","Effect": "Allow","Action": ["route53:ListHostedZones","route53:ListHostedZonesByName"],"Resource": "*"}]
}
2.2、配置aws凭据
创建用户后生成API Key
mkdir ~/.aws
echo "[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY" > ~/.aws/credentials
chmod 600 ~/.aws/credentials
2.3、安装certbot
这里安装的route53插件,通过我们上面的凭据去调用route53 API
apt update
apt install certbot python3-certbot-dns-route53
2.4、执行证书申请操作
通过route53 API完成DNS验证
DOMAIN="domain.com"
EMAIL="jarvan@domain.com"certbot certonly \--dns-route53 \--dns-route53-propagation-seconds 30 \-d "$DOMAIN" \-d "*.$DOMAIN" \--email "$EMAIL" \--agree-tos \--non-interactive \--server https://acme-v02.api.letsencrypt.org/directory
创建后我我并未发现有验证的那条dns记录,最终总结出了Let’s Encrypt 验证dns的流程
- Certbot 创建一个 _acme-challenge.csconsulting.live 的 TXT 记录
- Let’s Encrypt 服务器验证这个记录
- 验证成功后,Certbot 自动删除这个 TXT 记录
- 最后颁发证书
创建完成后会提示证书的路径和证书到期时间,并且还会说明证书会自动续期,因为我们是通过api方式请求的
提示信息如下
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for csconsulting.live and *.csconsulting.live
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/csconsulting.live/fullchain.pem
Key is saved at: /etc/letsencrypt/live/csconsulting.live/privkey.pem
This certificate expires on 2025-05-13.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate* Donating to EFF: https://eff.org/donate-le
2.5、证书的续订
证书在到期一个月时可以进行续订
续订后需要重nginx,因为
- 证书更新后,Certbot 会在 /etc/letsencrypt/live/你的域名/ 下生成新的证书文件
- Nginx 不会自动检测到证书文件的更新
- Nginx 在启动时会将证书加载到内存中,如果不重启/重载,它会继续使用旧的证书
即使是购买的公网证书也需要重新上传证书后重启服务
查看证书状态
$ certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:Certificate Name: csconsulting.liveSerial Number: 3244e0c60c7f5cb1507b417a7d18c281e29Key Type: RSADomains: csconsulting.live *.csconsulting.liveExpiry Date: 2025-05-15 02:11:36+00:00 (VALID: 89 days)Certificate Path: /etc/letsencrypt/live/csconsulting.live/fullchain.pemPrivate Key Path: /etc/letsencrypt/live/csconsulting.live/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
测试续期
$ certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/csconsulting.live.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Simulating renewal of an existing certificate for csconsulting.live and *.csconsulting.live- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded: /etc/letsencrypt/live/csconsulting.live/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cerbot.timer是定时器单元,下面还有定时器服务
$ systemctl status certbot.timer
● certbot.timer - Run certbot twice dailyLoaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)Active: active (waiting) since Wed 2025-02-12 10:32:06 CST; 2 days agoTrigger: Fri 2025-02-14 16:33:53 CST; 5h 3min leftTriggers: ● certbot.serviceFeb 12 10:32:06 ip-10-240-20-253 systemd[1]: Started Run certbot twice daily.
查看定时器状
$ systemctl cat certbot.timer
# /lib/systemd/system/certbot.timer
[Unit]
Description=Run certbot twice daily[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=43200
Persistent=true[Install]
WantedBy=timers.target$ systemctl cat certbot.service
# /lib/systemd/system/certbot.service
[Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://certbot.eff.org/docs
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew
PrivateTmp=true
解释配置
[Timer]
OnCalendar=*-*-* 00,12:00:00 # 每天在 00:00 和 12:00 运行
RandomizedDelaySec=43200 # 随机延迟最多12小时(43200秒)
Persistent=true # 如果错过运行时间(比如系统关机),下次启动会补充运行
[Service]
Type=oneshot # 运行一次就结束的服务
ExecStart=/usr/bin/certbot -q renew # 实际执行的命令,-q表示安静模式
PrivateTmp=true # 使用私有临时目录,增加安全性
相关文章:
企业SSL 证书管理指南
文章从以下几个部分展开 SSL证书的用途和使用场景SSL证书的申请类型和实现方式SSL证书的管理SSL证书的续签 一、SSL 证书的用途和使用场景 1.1 为什么要使用 SSL 证书? 1. 数据安全 🛡️- 在 HTTP 传输中,TCP 包可以被截获,攻…...
Python Pandas(7):Pandas 数据清洗
数据清洗是对一些没有用的数据进行处理的过程。很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要使数据分析更加准确,就需要对这些没有用的数据进行处理。数据清洗与预处理的常见步骤: 缺失值处理:识别并…...
南京观海微电子----整流滤波电路实用
01 变压电路 通常直流稳压电源使用电源变压器来改变输入到后级电路的电压。电源变压器由初级绕组、次级绕组和铁芯组成。初级绕组用来输入电源交流电压,次级绕组输出所需要的交流电压。通俗的说,电源变压器是一种电→磁→电转换器件。即初级的交流电转化…...
【python】向Jira测试计划下,附件中增加html测试报告
【python】连接Jira获取token以及jira对象 # 往 jira 测试计划下面,上传测试结果html def put_jira_file(plain_id):# 配置连接jiraconn ConnJira()jira conn.jira_login()[2]path jira.issue(O45- plain_id)attachments_dir os.path.abspath(..) \\test_API…...
探索ChatGPT背后的前端黑科技
由于图片和格式解析问题,可前往 阅读原文 在人工智能与互联网技术飞速发展的今天,像ChatGPT这样的智能对话系统已经成为科技领域的焦点。它不仅能够进行自然流畅的对话,还能以多种格式展示内容,为用户带来高效且丰富的交互体验。然…...
Agents Go Deep 智能体深入探索
Agents Go Deep 智能体深入探索 核心事件 OpenAI发布了一款先进的智能体“深度研究”,它能借助网络搜索和推理生成研究报告。 最新进展 功能特性:该智能体依据数百个在线资源生成详细报告,目前仅支持文本输出,不过很快会增加对图…...
DeepSeek全生态接入指南:官方通道+三大云平台
DeepSeek全生态接入指南:官方通道三大云平台 一、官方资源入口 1.1 核心交互平台 🖥️ DeepSeek官网: https://chat.deepseek.com/ (体验最新对话模型能力) 二、客户端工具 OllamaChatboxCherry StudioAnythingLLM …...
c++TinML转html
cTinML转html 前言解析解释转译html类定义开头html 结果这是最终效果(部分):  前言 在python.tkinter设计标记语言(转译2-html)中提到了将Ti…...
STM32硬件SPI函数解析与示例
1. SPI 简介 SPI(Serial Peripheral Interface)即串行外设接口,是一种高速、全双工、同步的通信总线,常用于微控制器与各种外设(如传感器、存储器等)之间的通信。STM32 系列微控制器提供了多个 SPI 接口&a…...
滤波器:卡尔曼滤波
卡尔曼滤波(Kalman Filter)是一种高效的递归算法,主要用于动态系统的状态估计。它通过结合系统模型和噪声干扰的观测数据,实现对系统状态的最优估计(在最小均方误差意义下)。以下从原理、使用场景和特点三个…...
深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决
在深度学习框架中,TensorFlow 和 PyTorch 无疑是两大明星框架。前面两篇文章我们分别介绍了 TensorFlow(点击查看) 和 PyTorch(点击查看)。它们引领着 AI 开发的潮流,吸引着无数开发者投身其中。但这两大框…...
Windows环境管理多个node版本
前言 在实际工作中,如果我们基于Windows系统开发,同时需要维护老项目,又要开发新项目,且不同项目依赖的node版本又不同时,那么就需要根据项目切换不同的版本。本文使用Node Version Manager(nvm࿰…...
opencascade 源码学习BRepBuilderAPI-BRepBuilderAPI
BRepBuilderAPI BRepBuilderAPI 是一个用于构建和操作 BRep(边界表示法,Boundary Representation)拓扑数据结构的工具类。它提供了高级接口,用于创建几何形状(如顶点、边、面、实体等)以及进行扫掠&#x…...
Vue 2 + Webpack 项目中集成 ESLint 和 Prettier
在 Vue 2 Webpack 项目中集成 ESLint 和 Prettier 可以帮助你规范代码风格并自动格式化代码。以下是详细的步骤: 1. 安装 ESLint 和 Prettier 相关依赖 在项目根目录下运行以下命令,安装 ESLint、Prettier 和相关插件: npm install --save…...
Renesas RH850 EEL库的优点
文章目录 1. 磨损均衡(Wear Leveling)2. 数据抽象与易用性3. 后台维护与自动刷新4. 多优先级操作5. ECC 错误处理与数据完整性EEL 与 FDL 的协作机制1. 分层架构2. 存储池划分3. 协作流程4. 同步与互斥5. 性能优化实际应用场景示例场景:车辆里程存储总结1. 磨损均衡(Wear L…...
torch导出ONNX模型报错:OnnxExporterError: Module onnx is not installed
问题: 使用torch 导出模型为onnx文件时报错:torch.onnx.OnnxExporterError: Module onnx is not installed! 环境: 操作系统 Win10 python运行环境 Anacoda3 torch 2.6.0 torchvision …...
LabVIEW 用户界面设计基础原则
在设计LabVIEW VI的用户界面时,前面板的外观和布局至关重要。良好的设计不仅提升用户体验,还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点: 1. 前面板设计原则 交互性:组合相关的输入控件和显示控件&#x…...
使用Python爬虫实时监控行业新闻案例
目录 背景环境准备请求网页数据解析网页数据定时任务综合代码使用代理IP提升稳定性运行截图与完整代码总结 在互联网时代,新闻的实时性和时效性变得尤为重要。很多行业、技术、商业等领域的新闻都可以为公司或者个人发展提供有价值的信息。如果你有一项需求是要实时…...
qt QTextEdit用法总结
1. 基本介绍 QTextEdit 是 Qt 中用于显示和编辑富文本(支持 HTML 子集)和纯文本的控件。 支持文本格式(字体、颜色、对齐)、列表、表格、图片插入等富文本功能。 底层通过 QTextDocument 管理内容,提供强大的文本处理…...
《open3d qt 网格采样成点云》
open3d qt 网格采样成点云 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionMeshUniformSample_triggered();//均匀采样 void MainWindow::...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
