在nginx中部署https服務(wù)的詳細步驟
一、https是什么?
https英文全稱是hypertext transfer protocol secure,是以安全為目標的http通道,在http的基礎(chǔ)上通過傳輸加密和身份認證保證了傳輸過程的安全性。可以有效防止數(shù)據(jù)竊聽與截獲泄密,保障網(wǎng)絡(luò)的安全。https的加密過程需要用到公鑰、私鑰,流程如下:
二、部署步驟
1.下載SSL證書
在云服務(wù)器(阿里云、騰訊云等)上為所購買的域名申請SSL證書,根據(jù)服務(wù)器的類型點擊下載,因此本文選擇nginx服務(wù)器。本文個人域名以cdn.xxx.xyz為例。
2.上傳文件
將下載好的證書壓縮包通過xftp上傳到nginx安裝目錄的conf下。此處一定記得要指定目錄。 此時可以在conf目錄下查看到上傳的文件。
[root@lianyu conf]pwd /usr/local/scnginx99/conf [root@lianyu conf]ls cdn.xxx.xyz_nginx.zip fastcgi.conf.default fastcgi_params.default koi-utf mime.types nginx.conf nginx.conf.default scgi_params.default uwsgi_params.default fastcgi.conf fastcgi_params htpasswd koi-win mime.types.default nginx.conf~ scgi_params uwsgi_params win-utf
3.解壓文件
輸入unzip命令對文件進行解壓會看到以 .key (私鑰)與 .pem(公鑰) 結(jié)尾的兩個文件
[root@lianyu conf] unzip cdn.xxx.xyz_nginx.zip Archive: cdn.xxx.xyz_nginx.zip inflating: cdn.xxx.xyz_nginx/cdn.xxx.xyz_bundle.pem #公鑰 inflating: cdn.xxx.xyz_nginx/cdn.xxx.xyz.key #私鑰
若顯示未找到命令,則需要安裝解壓軟件后,再進行解壓操作
[root@lianyu conf] yum install unzip -y
4.在nginx.conf配置文件中,修改https服務(wù)
在nginx的編譯安裝中應(yīng)在配置項,添加--with-http_ssl_module,啟用該模塊nginx.conf的配置文件中才會展示https服務(wù)的部分。安裝的具體操作步驟可見上一條博客。
在nginx安裝目錄下的conf文件中編輯nginx.conf文件,修改https的配置,在該模塊中更改具體的域名,公鑰,私鑰,其他代碼行保持默認并取消注釋。將server_name 修改成證書綁定的域名,ssl_certificate 修改成證書解壓后得到的 .pem 文件 ,將ssl_certificate_key 修改成解壓后得到的 .key 文件,其他代碼保持默認。
server { listen 443 ssl; server_name cdn.xxx.xyz; #證書綁定的域名 ssl_certificate cdn.xxx.xyz_nginx/cdn.xxx.xyz_bundle.pem ; #解壓文件后對應(yīng)的公鑰 ssl_certificate_key cdn.xxx.xyz_nginx/cdn.xxx.xyz.key ; #解壓文件后對應(yīng)的私鑰 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
修改保存后檢查配置語法的正確性以及更新配置文件
[root@lianyu conf] nginx -t nginx: the configuration file /usr/local/scnginx99/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/scnginx99/conf/nginx.conf test is successful [root@lianyu conf] nginx -s reload
5.修改hosts文件
hosts文件路徑:C:\Windows\System32\drivers\etc
在hosts文件中添加ip與域名
如:192.168.81.128 cdn.xxx.xyz
在windows的cmd中使用ping命令驗證hosts文件是否修改成功
C:\Users\鈺兒yu>ping cdn.xxx.xyz
正在 Ping cdn.xxx.xyz [192.168.81.128] 具有 32 字節(jié)的數(shù)據(jù):
來自 192.168.81.128 的回復(fù): 字節(jié)=32 時間<1ms TTL=64
來自 192.168.81.128 的回復(fù): 字節(jié)=32 時間=1ms TTL=64
來自 192.168.81.128 的回復(fù): 字節(jié)=32 時間=1ms TTL=64
來自 192.168.81.128 的回復(fù): 字節(jié)=32 時間<1ms TTL=64
若顯示ip地址為本人的私網(wǎng)ip而不是公網(wǎng)ip,則表示修改hosts文件步驟成功。
6.http跳轉(zhuǎn)到https中
為保證無論是訪問80端口還是443端口都能成功訪問至https協(xié)議的安全網(wǎng)站中,可在http中的server里另外加入一段永久重定向的代碼。
server { listen 80; server_name cdn.xxx.xyz; return 301 https://cdn.xxx.xyz; }
三、注意事項
以上就是今天要講的內(nèi)容,本文詳細介紹了在nginx服務(wù)器中部署https的詳細步驟,根據(jù)本人操作,提出幾個容易忽視的錯誤:
1.在上傳文件時,需要注意將文件上傳至nginx下載目錄的conf中。
2.修改配置文件后,通過nginx -t檢查語法錯誤,若出現(xiàn)以下報錯,考慮在配置文件中是否多打或少打花括號 {
[root@lianyu conf]# nginx -t nginx: [emerg] cannot load certificate "/usr/local/scnginx99/conf/cdn.xxx.xyz_bundle.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/usr/local/scnginx99/conf/cdn.xxx.xyz_bundle.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file) nginx: configuration file /usr/local/scnginx99/conf/nginx.conf test failed
以上就是在nginx中部署https服務(wù)的詳細步驟的詳細內(nèi)容,更多關(guān)于nginx部署https服務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
前端部署項目后nginx轉(zhuǎn)發(fā)接口404(頁面正常)詳解
一個網(wǎng)站項目,肯定是避免不了404頁面的,下面這篇文章主要給大家介紹了關(guān)于前端部署項目后nginx轉(zhuǎn)發(fā)接口404(頁面正常)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06Nginx+Keepalived實現(xiàn)雙機主備的方法
這篇文章主要介紹了Nginx+Keepalived實現(xiàn)雙機主備的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03