標籤:技術 匹配 client 機構 ext 使用者 center 名稱 實現
轉載請註明出處: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認證就是這樣的情況)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbDEwMjgzODY4MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
這裡須要注意。驗證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並配置加密反向 Proxy
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbDEwMjgzODY4MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="607" height="293">
設定檔改動完成後,用nginx -t 測試下配置無誤,就reload一下nginx服務。檢查443port是否在監聽:
配置完成,https已經在工作了,如今能夠通過https訪問網站了
NGINX之——配置HTTPS加密反向 Proxy訪問–自簽CA