背景說明
開發(fā)的軟件系統(tǒng)基本都是http開發(fā),在項目部署是,甲方要求傳輸必須啟用HTTPS,從而想到用Nginx配置啟用SSL模塊,并使用(443端口)HTTPS進行反向代理。正式項目中SSL證書肯定是要花錢購買,當(dāng)然也有免費的(通常是1年有效期)。今天介紹的SSL證書是通過 openssl生成免費的證書,除了網(wǎng)頁會提示不安全之外,其他都是正常的。
環(huán)境準備說明
項目 | 說明 |
---|---|
系統(tǒng) | CentOS 7.9 |
Nginx | 1.24.0 |
安裝Nginx及依賴環(huán)境
nginx具體安裝步驟不描述,網(wǎng)上教程很多,不是本文的重點。
若
若你已經(jīng)安裝了Nginx,但是沒有啟用ssl模塊,建議保存好配置文件(conf目錄下全部文件),然后重新安裝。
查看當(dāng)前nginx安裝了哪些模塊,可以用這個命令:nginx -V
準備:yum安裝依賴環(huán)境
yum -y install openssl openssl-devel make zlib zlib-devel gcc gcc-c++ libtool pcre pcre-devel
編譯時一定要啟用ssl模塊,才能使用https
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
編譯時會檢查當(dāng)前系統(tǒng)的依賴環(huán)境是否滿足,可根據(jù)error提示內(nèi)容,通過yum進行安裝?。?!
配置HTTPS步驟
接下來的操作,才是本文重點,分為2個階段,第一:創(chuàng)建ssl證書;第二:nginx啟用https并綁定證書;
首先,如果要使用https,那么就需要有https證書,這是前置條件。獲取途徑有2種,一種是通過正規(guī)途徑購買,這樣的證書經(jīng)過了認證,訪問使用時不會提示“不安全”。第二種,就是免費的,本文介紹使用openssl生成RSA密鑰及證書,具體操作如下
步驟1:創(chuàng)建服務(wù)器私鑰
在root家目錄下操作,防止找不到文件了。。
cd ~
openssl genrsa -des3 -out server.key 1024
輸入密碼:rmcp@2023
步驟2:創(chuàng)建簽名請求的證書(CSR)
openssl req -new -key server.key -out server.csr
根據(jù)提示,輸入信息,最終會得到2個文件,csr和key
步驟3:加載SSL支持的Nginx并使用私鑰時去除口令
備份key文件
cp server.key server.key.bak
openssl rsa -in server.key.bak -out server.key
輸入剛才設(shè)置的密碼:rmcp@2023
步驟4:將密鑰文件移動到Nginx配置文件目錄下,后續(xù)操作切換為conf目錄下執(zhí)行命令。
mv server.key server.csr /usr/local/nginx/conf/
cd /usr/local/nginx/conf/
步驟5:自動簽發(fā)證書,獲取CRT文件
Days代表證書有效期(天)
openssl x509 -req -days 10240 -in server.csr -signkey server.key -out server.crt
步驟6:修改Nginx配置文件,啟用HTTPS模塊。
vim nginx.conf
修改nginx默認配置文件,啟用https以及443端口
修改防火墻,開放443端口。
并重新啟動Nginx
步驟7:驗證443端口是否正常訪問
瀏覽器提示不安全時,選擇繼續(xù)訪問即可。
出現(xiàn)下面頁面,說明配置正確。文章來源:http://www.zghlxwxcb.cn/news/detail-848571.html
步驟8:配置反向代理,將原來HTTP端口轉(zhuǎn)換為HTTPS,并驗證平臺功能。
驗證成功后:使用nginx反向代理原來的web網(wǎng)站
修改后要重啟nginx
最終效果如下圖:文章來源地址http://www.zghlxwxcb.cn/news/detail-848571.html
總結(jié)
- 配置ssl證書時,要注意會輸入很多密碼,若你搞不清各個密碼代表的含義,直接用一個密碼即可。
- 反向代理的網(wǎng)站,需要注意內(nèi)部不能含有http的接口或者鏈接,否則會出錯,比如某圖片時http的URL地址,則使用https代理后就無法顯示了
- 域名因為沒有認證,所以時隨意寫的,當(dāng)然若是購買的ssl證書,是要求認證的域名,則不存在問題。
- 若想通過域名訪問,可以修改host來實現(xiàn)
到了這里,關(guān)于Nginx配置免費HTTPS詳細教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!