文档中心
HTTPS鑷埗璇佷功浣跨敤鍏ㄦ祦绋嬭瑙d粠鐢熸垚鍒伴儴缃茬殑淇濆绾ф暀绋?txt
时间 : 2025-09-27 16:02:22浏览量 : 3

在网络安全领域,HTTPS协议是保护数据传输安全的基石。而SSL/TLS证书作为HTTPS的核心组件,通常需要向权威机构(如DigiCert、Let's Encrypt)购买。但在测试环境或内部系统中,我们完全可以通过自制证书(又称自签名证书)来快速实现加密通信。本文将用通俗易懂的语言,结合具体场景,带你一步步完成HTTPS自制证书的生成、配置和使用。
一、为什么要用自制证书?
典型场景举例:
1. 开发测试环境:程序员小张在本地调试一个支付系统,需要模拟HTTPS请求,但不想花钱买正式证书。
2. 内网服务加密:某公司内部OA系统仅限员工访问,使用自制证书可避免外部流量劫持。
3. 教学演示:网络安全课程中,老师需要展示证书签发原理时。
注意:自制证书浏览器会提示“不安全”(如下图),因为它缺乏第三方CA的信任链,因此不适用于生产环境公开服务。
 *(图示:浏览器对自签名证书的警告提示)*
二、手把手生成自制证书(以OpenSSL为例)
步骤1:安装OpenSSL工具
- Windows用户:下载[OpenSSL官方二进制包](https://slproweb.com/products/Win32OpenSSL.html)
- Linux/macOS:终端直接运行 `sudo apt install openssl` 或 `brew install openssl`
步骤2:生成私钥和证书
```bash
1. 生成RSA私钥(2048位强度)
openssl genrsa -out mydomain.key 2048
2. 用私钥生成CSR(证书签名请求)
openssl req -new -key mydomain.key -out mydomain.csr
此时会交互式填写信息,比如:
Country Name (2 letter code) []: CN
Common Name (域名或IP) []: test.internal
3. 直接自签名生成crt证书(有效期365天)
openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt
```
关键参数解释:
- `.key`文件是私钥,必须严格保密!
- `.crt`文件是公钥证书,需部署到服务器
进阶操作:设置SAN扩展(兼容现代浏览器)
创建`san.conf`文件:
```ini
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = CN
commonName = test.internal
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = test.internal
IP.1 = 192.168.1.100
然后重新生成证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-config san.conf \
-keyout mydomain.key \
-out mydomain.crt
三、在常见服务中部署自制证书
? Nginx配置示例
```nginx
server {
listen 443 ssl;
server_name test.internal;
ssl_certificate /path/to/mydomain.crt;
ssl_certificate_key /path/to/mydomain.key;
强制TLS1.2以上更安全
ssl_protocols TLSv1.2 TLSv1.3;
}
重启Nginx后访问 `https://test.internal` ,首次需手动信任证书。
? Apache配置示例
```apacheconf
SSLEngine on
SSLCertificateFile "/path/to/mydomain.crt"
SSLCertificateKeyFile "/path/to/mydomain.key"
? Windows IIS导入方法
1. IIS管理器 → “服务器证书” → “导入”
2. 选择`.pfx`文件(需先用OpenSSL转换格式):
```bash
openssl pkcs12 -export -out mydomain.pfx -inkey mydomain.key -in mydomain.crt
```
四、客户端如何信任自制证书?
▎浏览器信任(以Chrome为例)
1. Windows/macOS:双击`.crt`文件 → “安装证书” → “受信任的根颁发机构”
2. Linux Chrome启动参数加:
google-chrome --ignore-certificate-errors --ignore-urlfetcher-cert-requests &
▎移动端信任技巧
- Android:将`.crt`文件放入设备存储 → “设置→安全→加密与凭据→安装证书”
- iOS:通过邮件发送`.crt` → iPhone点击附件安装
五、安全风险与注意事项 ??
1. 中间人攻击风险:黑客可能伪造相似的自制证书进行钓鱼。解决方法是严格保管私钥并确保证书指纹一致。
2. 过期问题: OpenSSL默认有效期较短,建议通过 `-days`参数延长(如 `-days 3650`)。
【】关键流程图解
生成私钥 (.key) → CSR请求 (.csr) → ↓
↓ 自签名
↓ ↓
最终得到 .crt + .key →部署到服务器
掌握自制HTTPS全流程后,无论是搭建内网GitLab还是测试API接口都能游刃有余。如需对外服务请务必换用正规CA颁发的可信证!
TAG:https自制证书使用流程,自己生成https证书,https证书生成工具,自己生成证书的网站