NGINX之——配置HTTPS加密反向代理訪問–自簽CA
轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/46695495
出於公司內部訪問考慮,採用的CA是本機Openssl自簽名生成的,因此無法通過互聯網工信Root CA驗證,所以會出現該站點不受信任或安全證書無效的提示。直接跳過,直接訪問就可以!
HTTPS的原理和訪問過程:
server必要條件
一個server私鑰 KEY文件
一張與server域名匹配的CA證書(公鑰,依據私鑰key生成)
訪問過程:
1,client瀏覽器通過https協議訪問server的443port,並獲得server的證書(公鑰);client瀏覽器這時候會去找一些互聯網可信的RootCA(權威證書頒發機構)驗證當前獲取到的證書是否合法有效,PS:這些RootCA是隨操作系統一起預設安裝在了系統裏面的;
2,假設RootCA驗證通過,表示該證書是可信的,而且若證書中標註的server名稱與當前訪問的serverURL地址一致,就會直接使用該證書中包括的公鑰解密server通過自己的KEY(私鑰)加密後傳輸過來的網頁內容,從而正常顯示頁面內容;
3,假設RootCA驗證不通過。說明該證書是未獲得合法的RootCA簽名和授權,因此也就無法證明當前所訪問的server的權威性,client瀏覽器這時候就會顯示一個警告。提示用戶當前訪問的server身份無法得到驗證,詢問用戶是否繼續瀏覽!(通常自簽名的CA證書就是這樣的情況)這裏須要註意。驗證CA的有效性。僅僅是證明當前server的身份是否合法有效。是否具有公信力以及身份唯一性,防止其它人仿冒該站點。但並不會影響到網頁的加密功能,雖然CA證書無法得到權威證明。可是它所包括的公鑰和server上用於加密頁面的私鑰依舊是匹配的一對,所以server用自己的私鑰加密的網頁內容,client瀏覽器依舊是能夠用這張證書來解密,正常顯示網頁內容,所以當用戶點擊“繼續瀏覽此站點(不推薦)”時。網頁就能夠打開了。
自簽名CA證書生成
1、 用Openssl隨機生成server密鑰,和證書申請文件CSR
2、自己給自己簽發證書
#opensslx509 -req -days 3650 -in moonfly.net.csr -signkeymoonfly.net.key -outmoonfly.net.crt
-days 3650 證書的有效期,自己給自己頒發證書,想有多久有效期,就弄多久,我一下弄了10年的有效期;
-inmoonfly.net.csr指定CSR文件
-signkeymoonfly.net.key指定server的私鑰key文件
-outmoonfly.net.crt 設置生成好的證書文件名稱
一條命令,自己給自己壓鋼印的身份證 moonfly.net.crt 就誕生了!
註:事實上嚴格來講,這裏生成的僅僅是一張RootCA,並非嚴格意義上的server證書ServerCA,真正的ServerCA是須要利用這張RootCA再給server簽署辦法出來的證書才算;只是我們這裏僅僅講怎樣實現網頁的SSL加密。所以就直接使用RootCA了。也是能正常實現加密功能的。
NGINX配置啟用HTTPS並配置加密反向代理配置文件改動完成後,用nginx -t 測試下配置無誤,就reload一下nginx服務。檢查443port是否在監聽:
配置完成,https已經在工作了,如今能夠通過https訪問站點了
NGINX之——配置HTTPS加密反向代理訪問–自簽CA