Nginx可以通过openssl模块支持SSL/TLS协议,实现HTTPS服务。HTTPS通过SSL/TLS协议为HTTP提供安全的传输通道,主要用于加密、身份认证等。
OpenSSL证书配置:
- 生成RSA私钥:openssl genrsa -des3 -out server.key 2048
- 根据私钥生成CSR请求文件:openssl req -new -key server.key -out server.csr
- 自签名证书(测试环境):openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- CA签发的证书(生产环境)
Nginx SSL配置:
- listen 443 ssl; # 监听443端口,启用ssl
- ssl_certificate:指定证书文件路径
- ssl_certificate_key:指定私钥文件路径
- ssl_protocols:指定SSL版本,推荐TLSv1.2
- ssl_ciphers:指定加密套件,推荐高强度套件
- ssl_session_cache:设置会话缓存,推荐builtin
- ssl_session_timeout:会话超时时间
配置示例:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache builtin:1000;
ssl_session_timeout 10m;
...
}
上例开启443端口的HTTPS服务,配置证书、私钥、SSL协议版本、加密套件等参数。