文档中心
HTTPS濡備綍鐪佸幓璇佷功淇′换锛熶竴鏂囨悶鎳傝嚜绛惧悕璇佷功涓庣鏈塁A鐨勫簲鐢?txt
时间 : 2025-09-27 15:59:20浏览量 : 1

摘要:HTTPS通信依赖证书信任链,但在内网、测试环境等场景下,正规CA证书可能成本过高或不便申请。本文将用通俗易懂的方式,讲解如何通过自签名证书和私有CA绕过浏览器警告,实现"省去证书信任"的实操方案。
一、为什么HTTPS总弹出"不安全"警告?
当你在浏览器访问HTTPS网站时,如果看到这样的警告:

*(示例:Chrome的"您的连接不是私密连接"警告)*
根本原因是浏览器不认可服务器提供的证书。就像你收到一张陌生名片,无法验证其真伪时自然会警惕。HTTPS证书验证失败通常有三大原因:
1. 自签名证书:自己生成的证书,没有权威CA(如DigiCert、Let's Encrypt)背书
2. 过期/吊销的证书:好比过期的身份证
3. 域名不匹配:证书是为`a.com`签发,却用在`b.com`上
二、省去证书信任的3种实战方案
方案1:手动添加例外(临时测试用)
适用场景:快速查看某个自签名证书的网站内容
以Chrome为例遇到警告页时:
1. 键盘输入 `thisisunsafe`(无输入框,直接按键生效)
2. 或点击"高级"→"继续前往"(旧版浏览器)
?? 风险提示:这相当于"闭眼过马路",仅在测试环境使用!
方案2:自签名证书 + 手动导入信任
适用场景:内网系统、开发环境
步骤示例(OpenSSL生成):
```bash
生成私钥和自签名证书
openssl req -x509 -newkey rsa:2048 -keyout mykey.pem -out mycert.pem -days 365 -nodes
```
然后将生成的`mycert.pem`导入操作系统:
- Windows:双击.crt文件 → "安装证书" → 选择"受信任的根证书颁发机构"
- MacOS:钥匙串访问 → 拖入cert文件 → 设置始终信任
- Linux:
```bash
sudo cp mycert.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
```
?? 原理类比:就像你自己刻了个公章,然后告诉电脑:"以后见到这个章就当是真的"。
方案3:搭建私有CA(企业级方案)
适用场景:公司内网多系统统一管理
操作流程示意图:
私有CA根证书
│
├── VPN服务器证书
├── OA系统证书
└── GitLab证书
1. 创建CA根证书:
```bash
生成CA私钥
openssl genrsa -out ca.key 2048
生成CA根证
openssl req -x509 -new -key ca.key -days 3650 -out ca.crt
```
2. 签发服务器证书:
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
3. 全员安装ca.crt到信任库
?? 企业案例:某银行内部系统全部使用私有CA,所有员工电脑预装该CA根证。
三、安全注意事项
1. 绝不用于公网服务:自签名/私有CA会被所有外部用户看到警告
2. 严格控制私钥权限:
chmod 400 ca.key
Linux设置仅root可读
3. 定期轮换机制:建议每1年更新一次CA根证
4. 吊销列表(CRL)配置(高级用法):
```openssl配置示例
[ CA_default ]
crlDistributionPoints = URI:http://example.com/crl.pem
FAQ速查表
? Q: Let's Encrypt免费为何还要用自签名?
?? A: LE需要域名验证且90天续期,不适合无域名的内网IP(如https://192.168.1.100)
? Q: iOS/Android手机如何安装?
?? A: CA文件发邮件→手机点击安装→设置中手动开启信任(路径因版本而异)
? **Q`: Chrome强制HSTS怎么办?
?? A: 访问 `chrome://net-internals/
hsts` → Delete domain security policy
TAG:https如何省去证书信任,证书信任设置是什么意思,证书信任设置在哪里,证书在哪信任,https 证书验证