生成基础证书文件
使用OpenSSL工具生成私钥和证书请求文件是通用流程:
- 生成2048位私钥:
openssl genrsa -out server.key 2048
- 创建CSR文件:
openssl req -new -key server.key -out server.csr
,需填写国家、省份、域名等信息 - 自签名生成证书:
openssl x509 -req -in server.csr -signkey server.key -out server.crt
对于正式环境,建议通过CA机构验证后获取证书,Let’s Encrypt等机构可提供免费证书。
Apache服务器配置
部署SSL证书需修改httpd.conf
或ssl.conf
:
- 启用SSL模块:
LoadModule ssl_module modules/mod_ssl.so
- 配置虚拟主机参数:指定
SSLCertificateFile
、SSLCertificateKeyFile
路径 - 添加证书链文件:
SSLCertificateChainFile /path/ca_bundle.crt
配置完成后需执行apachectl restart
重启服务。
Nginx服务器配置
在nginx.conf
中添加SSL相关指令:
server { listen 443 ssl; ssl_certificate /path/server.crt; ssl_certificate_key /path/server.key; ssl_protocols TLSv1.2 TLSv1.3; }
需注意证书链合并:将CA证书与域名证书合并为.crt
文件。
多域名证书处理
通过多域名SSL证书(SAN证书)可覆盖多个主域或子域:
- 生成CSR时需包含所有备用名称(Subject Alternative Names)
- DV型证书支持快速签发,EV型需3-5天企业验证
- 单张证书最多可支持250个不同域名
在Nginx中配置多域名证书时,需确保SNI(服务器名称指示)功能已启用。
不同主机环境的SSL配置核心在于证书文件生成与服务器模块调优。建议生产环境使用CA机构签发证书,定期检查证书有效期并建立自动续期机制。通过合理配置SSL/TLS协议版本和加密套件,可兼顾安全性与兼容性。