一、准备工作与环境要求
在内网生成自签名SSL证书前,需确保已安装OpenSSL工具并创建专用目录结构。建议在Linux或Windows系统下新建ca
和certs
文件夹分别存放根证书和服务器证书文件。OpenSSL版本需支持X.509v3扩展,以处理Subject Alternative Name(SAN)字段,满足多IP/域名需求。
二、生成自签名证书的核心步骤
- 生成CA私钥:
openssl genrsa -des3 -out ca/myCA.key 2048
(带密码保护) - 创建根证书:
openssl req -x509 -new -nodes -key ca/myCA.key -sha256 -days 7300 -out ca/myCA.crt
- 生成服务器私钥:
openssl genrsa -out certs/server.key 2048
- 生成证书签名请求(CSR):
openssl req -new -key certs/server.key -out certs/server.csr
(需填写Common Name) - 签署服务器证书:
openssl x509 -req -days 365 -in certs/server.csr -signkey certs/server.key -out certs/server.crt
三、配置Web服务器使用证书
不同服务器需分别配置证书路径:
SSLCertificateFile /path/to/server.crt SSLCertificateKeyFile /path/to/server.key
server { listen 443 ssl; ssl_certificate /path/to/server.crt; ssl_certificate_key /path/to/server.key; }
四、客户端信任证书的方法
由于自签名证书未被公共CA信任,需手动将根证书(myCA.crt)导入客户端操作系统或浏览器的信任存储。Windows系统可通过证书管理器导入,Linux系统需将证书复制到/usr/local/share/ca-certificates/
后执行update-ca-certificates
。
通过OpenSSL工具生成自签名证书,可在内网环境中快速实现HTTPS加密通信,但需注意证书有效期管理和定期更换私钥。建议仅为测试或非敏感业务使用此方案,生产环境仍推荐采用受信任CA签发的证书。