1 Nginx追加ssl模塊
服務器本身已經安裝了Nginx并進行了相關配置,此時可通過(./nginx -V)命令查看Nginx是否已經安裝了ssl模塊。(注意此處-V,v為大寫,小寫僅可查看Nginx版本)
首先進入Nginx安裝目錄下的sbin文件夾
cd /usr/local/webserver/nginx/sbin/
然后執行查看命令
./nginx -V
如果出現configure arguments: --with-http_ssl_module則證明已經安裝了ssl模塊,可以直接進行conf文件配置https轉發
如果沒有出現configure arguments: --with-http_ssl_module,則進入Nginx的解壓路徑并執行如下命令:
./configure --with-http_ssl_module
此時需注意,如果之前安裝的Nginx加載了別的模塊,此時切勿忘記漏掉,否則會導致追加了ssl模塊,卻漏掉了本身的模塊,從而使之前的Nginx配置報錯。
因本服務器在之前的Nginx中使用了purge模塊,故此處實際執行命令為:
./configure --add-module=../ngx_cache_purge-2.3 --with-http_ssl_module
執行make命令編譯(此處切勿使用make install命令,make install命令會在編譯后直接安裝Nginx,會覆蓋之前的Nginx導致之前的配置文件丟失)。
編譯成功后,當前目錄會出現objs文件夾
進入objs文件夾,將此處編譯生成的新nginx文件替換之前usr/local/webserver/ nginx /sbin/文件夾下的nginx文件。
此時,再執行./nginx -V命令,查看是否已經成功追加ssl模塊。
2 https配置
因各服務商ssl證書申請流程有出入,故本文對于證書申請不再作詳細敘述。
證書申請成功后,將申請好的證書文件解壓到本地(此處使用阿里云申請的pem及key文件為例)。
在Nginx配置文件夾下創建cert文件夾
cd /usr/local/webserver/nginx/conf/
mkdir cert
將解壓的pem及key文件上傳到cert文件夾下(使用ftp工具,或者mac終端的scp命令)
使用vim命令編輯nginx.conf文件
vim nginx.conf
按i鍵進入編輯模式,在配置文件中找到HTTP協議代碼片段,在HTTP協議代碼里面新增以下server配置示例。如果server配置已存在,按照以下注釋內容修改相應的配置即可。
server {
listen 443; #配置HTTPS的默認訪問端口號為443。此處如果未配置HTTPS的默認訪問端口,可能會造成Nginx無法啟動。Nginx 1.15.0以上版本請使用listen 443 ssl代替listen 443和ssl on。
server_name www.certificatestests.com; #將www.certificatestests.com修改為您證書綁定的域名,例如:www.example.com。如果您購買的是通配符域名證書,要修改為通配符域名,例如:*.aliyun.com。
root html;
index index.html index.htm;
ssl_certificate cert/X.pem; #將X.pem替換成您證書的文件名稱。
ssl_certificate_key cert/X.key; #將X.key替換成您證書的密鑰文件名稱。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用該協議進行配置。
ssl_prefer_server_ciphers on;
location / {
root html; #站點目錄。
index index.html index.htm;
}
}
配置文件修改完畢之后,按Esc鍵后輸入:wq!,然后按Enter鍵保存修改的配置文件并退出編輯模式。
服務器配置完成后如圖所示
校驗配置文件是否正確
./nginx -t -c /usr/local/webserver/nginx/conf/nginx.conf
指定nginx配置文件重啟
./nginx -s reload -c /usr/local/webserver/nginx/conf/nginx.conf
測試是否成功
至此在不影響原Nginx的情況下,追加了ssl模塊,并且配置成功。