kubernetes實戰篇之windows添加自籤ca證書信任

系列目錄html

因爲服務端設置了https訪問,所以若是經過瀏覽器訪問時會提示證書不被信任,可是仍然能夠經過處理繼續訪問.可是在自動化環境中,都是經過命令來請求的,這樣不受信任的https就會報錯誤,這樣咱們就要像docker服務器同樣添加對自簽證書的信任.前兩部分咱們分別在docker推送鏡像和拉取鏡像時添加了信任證書操做.可是都是基於linux的,在自動化環境中,可能有的節點是windows節點,咱們這一節來看下如何在windows環境下添加自簽證書信任.java

咱們先來看一下若是沒有添加證書信任的狀況下經過命令請求的結果是什麼樣子的linux

C:\Users\tyler>curl https://192.168.124.43:8443/
curl: (77) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

C:\Users\tyler>

能夠看到,請求失敗,提示的錯誤信息是證書不被信任.web

因爲個人windows測試機上安裝了curl所以會出現curl命令,若是你沒有安裝則會出現curl不是一個命令的錯誤.若是不想裝curl能夠經過powershell來請求,具體操做以下docker

PS C:\Users\tyler> Invoke-WebRequest https://192.168.124.43:8443/
Invoke-WebRequest : The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure
 channel.
At line:1 char:1
+ Invoke-WebRequest https://192.168.124.43:8443/
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
   eption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

PS C:\Users\tyler>

能夠看到,沒有添加信任經過命令請求就會返回錯誤.下面咱們講下如何在windows環境下添加自簽證書信任shell

保存證書

首先,打開cmd,cd到一個自已便於記的目錄,而後執行命令keytool -printcert -sslserver 192.168.124.43:8443 -rfc >nexus.crtwindows

前面已經說過要執行keytool命令須要正確配置java,若是仍然沒法執行,能夠從java安裝目錄裏找到keytool.exe,以上命令的keytool換成keytoolexe的完整路徑.瀏覽器

  • 在cmd裏輸入mmc命令,這時候會彈出一個界面

img

若是你看到頁面裏面的內容沒有上面的多,也不用擔憂,由於這個狀態並不是初始狀態.服務器

  • 執行文件-添加/刪除管理節點

img

  • 從左邊找到"證書"而後點擊"添加"

img

在以上操做過程當中會出現一個選擇,默認選擇當前用戶便可.curl

以上操做完之後點擊肯定.而後展開左側的證書,並執行如下操做

img

點擊導入就會出現一個選擇對話框,這時候找到咱們剛纔保存的nexus.crt文件導入.最後會出現一個警示,這時候選擇肯定.而不是取消.

這時候,若是關閉主界面的時候會提示是否保存設置,這裏取消便可.證書信任已經保存.

這個時候咱們再執行curl或者powershell invoke-webrequest,便可以年到以下信息

>curl https://192.168.124.43:8443/

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Nexus Repository Manager</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <meta name="description" content="Nexus Repository Manager"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
...

因爲內容太長,這裏就再也不輸完整的了.

相關文章
相關標籤/搜索