ssl新闻资讯

文档中心

SSL鑷鍚嶈瘉涔﹀埗浣滄寚鍗楁墜鎶婃墜鏁欎綘鎼缓瀹夊叏娴嬭瘯鐜

时间 : 2025-09-27 16:37:51浏览量 : 1

2SSL鑷鍚嶈瘉涔﹀埗浣滄寚鍗楁墜鎶婃墜鏁欎綘鎼缓瀹夊叏娴嬭瘯鐜

在网络安全领域,SSL/TLS证书是保护数据传输安全的基石。但对于开发、测试或内网环境来说,购买商业证书可能成本过高。这时,自签名证书(Self-Signed Certificate)就成了一个经济高效的解决方案。本文将通过通俗易懂的步骤和实际案例,教你如何制作和使用自签名证书。

一、什么是自签名证书?

简单来说,自签名证书就是自己给自己颁发的SSL证书。它和商业证书(如DigiCert、Let's Encrypt)一样能加密数据,但没有第三方机构的信任背书。浏览器访问时会提示“不安全”,但这不影响它在特定场景下的使用。

典型应用场景:

1. 本地开发测试:比如开发一个需要HTTPS的网站时。

2. 内网服务加密:公司内部OA系统、数据库连接等。

3. 安全实验环境:渗透测试或漏洞复现时模拟HTTPS流量。

二、制作自签名证书的详细步骤(以OpenSSL为例)

案例1:为本地Web服务生成证书

假设你正在开发一个网站`test.local`,需要HTTPS支持。

步骤1:安装OpenSSL

如果你的系统是Linux/macOS,通常已预装;Windows用户可从[OpenSSL官网](https://www.openssl.org/)下载。

步骤2:生成私钥和证书

```bash

生成一个RSA私钥(2048位强度)

openssl genrsa -out test.local.key 2048

用私钥生成自签名证书(有效期365天)

openssl req -new -x509 -key test.local.key -out test.local.crt -days 365

```

执行后会要求填写信息:

- `Common Name (CN)`:必须填写域名(如`test.local`),IP也可但兼容性差。

- 其他信息(如国家、公司)可随意填写或留空。

步骤3:配置到Web服务器

- Nginx示例

```nginx

server {

listen 443 ssl;

server_name test.local;

ssl_certificate /path/to/test.local.crt;

ssl_certificate_key /path/to/test.local.key;

}

```

- Apache示例

修改`httpd.conf`,添加:

```apache

SSLCertificateFile "/path/to/test.local.crt"

SSLCertificateKeyFile "/path/to/test.local.key"

??注意:

访问`https://test.local`时浏览器会告警,需手动信任证书(下文会讲)。

案例2:为数据库连接加密

MySQL/MongoDB等数据库默认使用明文传输,用自签名证书可快速加密:

MySQL服务端配置:

openssl req -newkey rsa:2048 -nodes -keyout server-key.pem -out server-req.pem

openssl x509 -req -in server-req.pem -signkey server-key.pem -out server-cert.pem

MySQL客户端连接时添加参数:

mysql --ssl-ca=server-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem

三、如何让浏览器/系统信任自签证书?

虽然自签书能加密数据,但默认不被信任。以下是解决方法:

Windows系统:

1. 双击`.crt`文件 → “安装证书” → “本地计算机” → “受信任的根证书颁发机构”。

2. 命令行导入(管理员权限)

```powershell

certutil -addstore "Root" C:\path\to\cert.crt

```

macOS/Linux:

macOS双击导入钥匙串并设置为始终信任

Linux (Debian/Ubuntu):

sudo cp test.local.crt /usr/local/share/ca-certificates/

sudo update-ca-certificates

四、自签名 vs CA签发 vs Let's Encrypt的区别

|类型|优点|缺点|

||||

|自签书|免费,即时生效|需手动信任,不适合生产|

|CA签发(如DigiCert)|全自动信任,支持泛域名|收费高(几百到几千元/年)|

|Let's Encrypt|免费,自动续期|需每90天更新,需域名验证|

五、安全注意事项

1. 私钥保护: `.key`文件等同于密码,务必设置权限为600:

```bash chmod600*.key```

2. 定期更换:建议每3~6个月重新生成一次.

3. 禁用弱算法:避免使用SHA-1或1024位RSA:

```openssldgst-sha256-keytest.local.key```

六、

通过本文你学会了:

?用OpenSSL一键生成自签书

?配置到Web服务器/数据库

?解决浏览器不信任问题

虽然自签书不适合对外服务,但在开发和内网环境中,它能以零成本快速实现加密.对于生产环境,推荐结合Let'sEncrypt或商业CA使用.

如果有具体问题(如Docker容器内如何使用),欢迎在评论区留言讨论!

TAG:ssl自签名证书制作,自定义ssl证书,iis 自签名证书,ssl证书 自己制作,自签ssl证书变为可信任,ssl证书自签发