## 安裝 SSL 模塊
> 該模塊需要[OpenSSL](http://www.openssl.org/)庫。
### 檢查 SSL
如果是通過編譯安裝,一般默認情況下不構建此模塊。
檢查是否存在 SSL 模塊:
~~~shell
nginx -V
~~~

出現 `--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
- PHP
- PHP 核心架構
- PHP 生命周期
- PHP-FPM 詳解
- PHP-FPM 配置優化
- PHP 命名空間和自動加載
- PHP 運行模式
- PHP 的 Buffer(緩沖區)
- php.ini 配置文件參數優化
- 常見面試題
- 常用函數
- 幾種排序算法
- PHP - 框架
- Laravel
- Laravel 生命周期
- ThinkPHP
- MySQL
- 常見問題
- MySQL 索引
- 事務
- 鎖機制
- Explain 使用分析
- MySQL 高性能優化規范
- UNION 與 UNION ALL
- MySQL報錯:sql_mode=only_full_group_by
- MySQL 默認的 sql_mode 詳解
- 正則表達式
- Redis
- Redis 知識
- 持久化
- 主從復制、哨兵、集群
- Redis 緩存擊穿、穿透、雪崩
- Redis 分布式鎖
- RedisBloom
- 網絡
- 計算機網絡模型
- TCP
- UDP
- HTTP
- HTTPS
- WebSocket
- 常見幾種網絡攻擊方式
- Nginx
- 狀態碼
- 配置文件
- Nginx 代理+負載均衡
- Nginx 緩存
- Nginx 優化
- Nginx 配置 SSL 證書
- Linux
- 常用命令
- Vim 常用操作命令
- Supervisor 進程管理
- CentOS與Ubuntu系統區別
- Java
- 消息隊列
- 運維
- RAID 磁盤陣列
- 邏輯分區管理 LVM
- 業務
- 標準通信接口設計
- 業務邏輯開發套路的三板斧
- 微信小程序登錄流程
- 7種Web實時消息推送方案
- 用戶簽到
- 用戶注冊-短信驗證碼
- SQLServer 刪除同一天用戶重復簽到
- 軟件研發完整流程
- 前端
- Redux
- 其他
- 百度云盤大文件下載
- 日常報錯記錄
- GIT
- SSL certificate problem: unable to get local issuer certificate
- NPM
- reason: connect ECONNREFUSED 127.0.0.1:31181
- SVN
- SVN客戶端無法連接SVN服務器,主機積極拒絕
- Python
- 基礎
- pyecharts圖表
- 對象
- 數據庫
- PySpark
- 多線程
- 正則
- Hadoop
- 概述
- HDFS