8. Nginx极速版-HTTPS配置
HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
生成证书
openssl genrsa -out privateKey.key 2048
openssl req -new -x509 -days 365 -key privateKey.key -out server.crt
这三个命令使用 OpenSSL 工具来生成和签名 SSL 证书。
openssl genrsa -out privateKey.key 2048- 这个命令是使用 OpenSSL 工具生成一个带有 DES 3 加密的 RSA 私钥文件。
openssl:命令行工具的名称。- -genrsa:生成 RSA 密钥对的命令.
- -ges 3:使用 DES 3 算法对私钥进行加密。
- -out server.key:指定生成的私钥文件的输出路径和文件名。
- 2048:指定生成的RSA密钥的长度为2048位。
openssl req -new -x509 -days 365 -key privateKey.key -out server.crt:- 该命令使用CSR文件和私钥文件来生成自签名的X.509证书。
- -req选项表示使用CSR文件。
- -days 365指定证书的有效期为365天。
- -in server.csr指定了输入的CSR文件。
- -signkey server.key指定了用于签名证书的私钥文件。
- -out server. Crt 指定了生成的证书文件的输出路径。
配置 SSL
# upstream talebook-apps {
# server localhost:8120;
# server localhost:8121;
# }
server {
listen 8004 ssl;
server_name talebook.https.balance;
# 用于指定SSL证书文件的路径
ssl_certificate /home/ssl/server.crt;
# 用于指定SSL证书的私钥文件的路径
ssl_certificate_key /home/ssl/privateKey.key;
# 用于指定支持的SSL/TLS协议版本
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 用于指定支持的加密算法
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 如果设置了密码需要加上
# ssl_password_file /home/ssl/cert.pass;
location / {
# 什么都不配置默认为轮询
proxy_pass http://talebook-apps;
}
}
HTTPS 优化
SSL 操作会消耗额外的 CPU 资源。CPU 占用最多的操作是 SSL 握手。有两种方法可以最大程度地减少每个客户端的这些操作数:
- 使保持活动连接能够通过一个连接发送多个请求;
- 重用 SSL 会话参数以避免并行连接和后续连接的 SSL 握手;
会话存储在工作进程之间共享并由 ssl_session_cache 指令配置的 SSL 会话缓存中。一兆字节的缓存包含大约 4000 个会话。默认缓存超时为 5 分钟。可以使用 ssl_session_timeout 指令增加此超时。
以下是针对具有 10 MB 共享会话缓存的多核系统优化的示例配置:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果