准备工作与环境配置
生成自签名SSL证书需要安装OpenSSL工具并创建专用工作目录。Windows系统建议将OpenSSL安装到无空格和中文字符的路径(如C:\OpenSSL32),并添加bin目录到系统环境变量。Linux/macOS用户可通过包管理器直接安装。创建工作目录建议包含ca和certs两个子目录,分别存放CA证书和服务器证书文件。
生成密钥与证书文件
完整流程包含以下步骤:
- 生成CA私钥:
openssl genrsa -des3 -out ca/myCA.key 2048
- 创建CA根证书:
openssl req -x509 -new -nodes -key ca/myCA.key -sha256 -days 7300 -out ca/myCA.crt
- 生成服务器私钥:
openssl genrsa -out certs/server.key 2048
- 创建证书签名请求:
openssl req -new -key certs/server.key -out certs/server.csr
- 自签名证书:
openssl x509 -req -days 3650 -in certs/server.csr -CA ca/myCA.crt -CAkey ca/myCA.key -CAcreateserial -out certs/server.crt
配置服务器使用证书
不同服务器的配置方式:
- Apache:修改ssl.conf文件,指定SSLCertificateFile和SSLCertificateKeyFile路径
- Nginx:在server块中添加
ssl_certificate
和ssl_certificate_key
指令 - IIS:通过MMC控制台导入PFX格式证书,需使用
openssl pkcs12 -export
命令转换格式
证书验证与注意事项
完成配置后需验证证书有效性:
- 使用浏览器访问HTTPS地址检查证书链
- 通过
openssl verify -CAfile ca/myCA.crt certs/server.crt
命令验证证书签名 - 注意自签名证书存在浏览器警告,仅推荐用于测试环境或内部系统
通过OpenSSL工具链可快速生成自签名SSL证书,但需注意其安全局限性。建议生产环境使用权威CA签发的证书,自签名方案适用于开发测试或需要加密通信的非公开服务。定期更新密钥和监控证书有效期是维护安全性的重要措施。