多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 安装 SSL 模块 > 该模块需要[OpenSSL](http://www.openssl.org/)库。 ### 检查 SSL 如果是通过编译安装,一般默认情况下不构建此模块。 检查是否存在 SSL 模块: ~~~shell nginx -V ~~~ ![](https://img.kancloud.cn/bc/43/bc43e393972c7d607ead91220dbb9ad6_1105x271.png) 出现 `--with-http_ssl_module` 则已安装。 ### 安装 1. 在 Nginx 解压源码目录下,执行命令: ~~~shell ./configure --with-http_ssl_module ~~~ 2. 编译 ~~~shell make ~~~ 3. 备份原有 Nginx ~~~shell cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak ~~~ 4. 将编译好的 Nginx 覆盖原有 Nginx ~~~shell cp /root/nginx/objs/nginx /usr/local/nginx/sbin/ ~~~ 5. 在 nginx 安装目录下检查是否安装成功 ~~~shell nginx -V ~~~ ## 配置 SSL 证书 ### 获取证书 在 ssl 证书控制台下载证书,完成后上传到服务器(路径自定义) ### 修改虚拟机配置 为了减少处理器负载,建议 * 将 `worker_number` 的值设置为 CPU 核的数量 * 启动 `keep-alive` 连接 * 启动`shared` 会话缓存 * 禁用`builtin` 会话缓存 * 增加会话生命周期 ~~~text worker_processes auto; http { ... server { listen 443 ssl; # HTTPS 默认端口号 keepalive_timeout 70; ssl on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5; ssl_certificate /usr/local/nginx/conf/cert.pem; ssl_certificate_key /usr/local/nginx/conf/cert.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ... } ~~~ * **ssl_protocols**:启用指定的协议 TLSv1.1和TLSv1.2(1.1.13、1.0.12)仅在OpenSSL为1.0.1或更高版本时有效。 TLSv1.3(1.13.0)仅在OpenSSL为1.1.1及以上版本时有效。 * **ssl_ciphers**:加密算法 以OpenSSL库为标准格式指定 ~~~shell openssl ciphers # 查看 OpenSSL 加密算法列表 ~~~ * **ssl_certificate**:证书文件的路径 * **ssl_certificate_key**:秘钥文件的路径 * **ssl_session_cache**:存储会话参数的缓存的类型和大小 * `off` 严格禁止使用会话缓存:nginx 明确告诉客户端会话可能不会被重用。 * `none` 温和地禁止使用会话缓存:nginx 告诉客户端会话可以被重用,但实际上并没有将会话参数存储在缓存中。 * `builtin` OpenSSL 中内置的缓存;仅由一个工作进程使用。缓存大小在会话中指定。如果未给出大小,则等于 20480 个会话。使用内置缓存会导致内存碎片。 * `shared` 所有工作进程之间共享的缓存。缓存大小以字节为单位指定;一兆字节可以存储大约 4000 个会话。每个共享缓存都应该有一个任意名称。同名缓存可用于多个虚拟服务器。 * **ssl_session_timeout**:缓存会话有效期 > 详细配置:https://nginx.org/en/docs/http/ngx_http_ssl_module.html