此連線並非私人連線? 檢查你的SSL設定等級! - huskylin
文章推薦指數: 80 %
日前網站被回報說用Safari 開啟時會顯示「此連線並非私人連線」 一開始是覺得很奇怪,憑證應該是沒有問題的(不是自簽的而且是政府單位核發的)
Board
隨手記錄學習筆記
Tags
Android1Back-End3CSS2Docker1Front-End4Gitlab1JavaScript1Leaflet1MySQL2Node.js5Python1Ubuntu1hadoop2impala2ubuntu2新奇分享1部屬6
TagCloud
AndroidBack-EndCSSDockerFront-EndGitlabJavaScriptLeafletMySQLNode.jsPythonUbuntuhadoopimpalaubuntu新奇分享部屬
Archive
六月20211二月20212一月20212十一月20201十月20201七月20201六月20204七月20191十月20181九月20181五月20181
RecentPosts
好香的框架!NestJSZerotoHero線上課程學習筆記
2021-06-17
利用Angular動態元件,製作高彈性客製化頁面!(下)
2021-02-19
利用Angular動態元件,製作高彈性客製化頁面!(上)
2021-02-18
此連線並非私人連線?檢查你的SSL設定等級!
2021-01-28
備份在Docker中的Gitlab資料(BackupGitlabinDocker)
2021-01-01
此連線並非私人連線?檢查你的SSL設定等級!
2021-01-28
Front-End
Comments
WordCount:937(words)
ReadCount:3(minutes)
此連線並非私人連線?檢查你的SSL設定等級!問題日前網站被回報說用Safari開啟時會顯示「此連線並非私人連線」一開始是覺得很奇怪,憑證應該是沒有問題的(不是自簽的而且是政府單位核發的)透過Chrome或是Firefox開啟時,都是沒有問題的當然是可以透過把這個網站的憑證加入到Mac的鑰匙圈存取上手動信任這個網站來規避問題不過還是要解決才來得痛快
檢查原因要檢查自己的SSL設定是否完善可使用SSLLabs檢測的服務他會偵測你SSL設定存在哪些問題、疑慮並且給出一個安全等級的分數
我的檢測結果為B級原因是檢查出「Thisservers’scertificatechainisincomplete.」的問題
什麼是CertificateChain?
CertificateChain中文可翻作憑證串鏈、信任鏈、數位憑證鏈…等等
憑證主要分三種:
根憑證(RootCertificate)
中繼憑證(IntermediateCertificate)
終端憑證(End-EntityCertificate)
“通常”是階級式的驗證,像資料結構的樹一樣,根憑證就是根節點,終端憑證是葉節點,其他都是中繼憑證。
使用網頁瀏覽器造訪一個網站,會執行認證路徑驗證演算法,使用該主機提供的電子憑證,驗證是否能夠對應到預先安裝的根憑證,從而驗證從根憑證到終端節點的路徑是否為一條有效的信任鏈,確保TLS安全連接中的身分。
簡單來說,憑證是否安全有效,是由一連串的憑證驗證組成的
解決問題在一般情況下,瀏覽器會自動找到對應的CertificateChain(憑證中會含有簽發者個資訊,可以一路找下去)所以在Chrome及Firefox中才沒有遇到這個問題
不確定為什麼Safari會有這個問題但是除了Safari以外如果是用cURL或是在沒有internet環境的網路也無法透過網路去找到CertificateChain所以最好的做法就是加上完整的中繼憑證
加上中繼憑證根據StackOverflow上的一篇解答SSL:Serverscertificatechainisincomplete
openyoursiteinabrowser
clickongreenpadlockanddisplaycertificateproperties
exporteverycertificateinthechain
installnewcertonserver
testnginxcofigurationnginx-t
restartserverservicenginxrestart
提到一個快速的解法是在可以成功連線的瀏覽器上直接匯出金鑰練並且加入到你目前的憑證中然後重啟Nginx設定
操作範例以Firefox為例來操作找到檢視憑證後的地方後可以看到上面那一串就是這個憑證的CertificateChain瀏覽器有提供下載金鑰練的功能
打開後的結構會是一連串的
-----BEGINCERTIFICATE-----
憑證內容
-----ENDCERTIFICATE-----
-----BEGINCERTIFICATE-----
憑證內容
-----ENDCERTIFICATE-----
...
看你有幾個憑證節點就會有幾個BEGIN…END
最終更新原本網站的憑證然後刷新Nginx設定(reload後才會生效)
完成後再測驗一次拿到了A級(最高可以到A+的100分,不過也會犧牲一些效能及支援度)
最後當然也就可以成功在Safari上正常瀏覽網站啦!灑花~
回顧一下本文的重點
利用SSLLabs檢查網站
CertificateChain是什麼
如何加上完整的CertificateChain
要支援Safari瀏覽器需要注意SSL的問題
參考資料
HTTPS中证书链不完整的解决方案
OpenSSL檢測SSL的憑證串鍊
OpenSSLCertificateChain
維基百科:根憑證
如何在SSLLabs拿到100分
huskylin雜端工程師
Newer
Older
延伸文章資訊
- 1此連線並非私人連線? 檢查你的SSL設定等級! - huskylin
日前網站被回報說用Safari 開啟時會顯示「此連線並非私人連線」 一開始是覺得很奇怪,憑證應該是沒有問題的(不是自簽的而且是政府單位核發的)
- 2#詢問你的連線不是私人連線 - 3C板 | Dcard
有事先google爬文過,如果違規會刪文謝謝,MacBook開啟特定網頁顯示你的連線不是私人連線,試過以下方法,1.重新開機,2.時間時區正確所以沒有動,3.
- 3此連線並非私人連線– 台灣公司行號
如果您連接的網站不是安全的,則會看到「您的連線不是私人連線」的訊息。如果看到此 . ... [求救]瀏覽器出現你的連線不是私人連線- 看板MAC - 批踢踢實業坊.
- 4[求救]瀏覽器出現你的連線不是私人連線 | 健康跟著走
時間Mon Jul 9 22:58:49 2018. 各位好,我在上個月的時候入手了一台MacBook Air (13-inch, Early 2015), 因為習慣從 ... ,Apple.....
- 5Apple 更新iCloud.com 安全性- Apple 支援(台灣)
選擇此鎖頭圖像可以看到「Safari 正在使用加密連線來 ... 如果您連接的網站不是安全的,則會看到「您的連線不是私人連線」的訊息。