文件首頁
MySQL Connector/NET 開發人員指南
相關文件 下載本手冊
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb


6.7.2 在 Connector/NET 中使用 PFX 憑證

.NET 不提供對 PEM 格式的本機支援。相反地,Windows 包含一個憑證存放區,其中提供 PFX 格式的平台相關憑證。為了此範例的目的,請使用 MySQL 伺服器儲存庫中的測試用戶端憑證 (./mysql-test/std_data)。先將這些轉換為 PFX 格式。此格式也稱為 PKCS#12。

若要完成此 PFX 憑證教學課程中的步驟,您必須安裝 Open SSL。您可以從 Shining Light Productions 免費下載 Microsoft Windows 版本。

建立要與 .NET 用戶端搭配使用的憑證檔案

  1. 從目錄 server-repository-root/mysql-test/std_data,發出下列命令。

    openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -certfile cacert.pem -out client.pfx
  2. 當系統要求輸入匯出密碼時,請輸入密碼 pass。將會產生檔案 client.pfx。本教學課程的其餘部分將使用此檔案。

使用基於檔案的憑證連線至伺服器

  1. 使用您在上一個步驟中建立的 client.pfx 檔案來驗證用戶端。以下範例示範如何使用 SslModeCertificateFileCertificatePassword 連線字串選項進行連線。

    using (MySqlConnection connection = new MySqlConnection(
      "database=test;user=sslclient;" +
      "CertificateFile=H:\\git\\mysql-trunk\\mysql-test\\std_data\\client.pfx;" +
      "CertificatePassword=pass;" +
      "SslMode=Required "))
      
    {
        connection.Open();
    }

    憑證檔案的路徑需要變更,以反映您的個別安裝。使用 PFX 格式憑證時,SslMode 連線選項會驗證所有 SSL 模式值的憑證,但 DisabledNone 除外(在 Connector/NET 8.0.29 中已淘汰)。

使用基於存放區的憑證連線至伺服器

  1. 第一個步驟是將 PFX 檔案 client.pfx 匯入個人存放區。在 Windows 檔案總管中按兩下該檔案。這會啟動憑證匯入精靈。

  2. 依照精靈指示的步驟操作,當系統提示輸入 PFX 檔案的密碼時,請輸入 pass

  3. 按一下 完成 以關閉精靈,並將憑證匯入個人存放區。

檢查個人存放區中的憑證

  1. 在命令提示字元中輸入 mmc.exe 來啟動 Microsoft 管理主控台。

  2. 檔案 功能表選取 新增/移除嵌入式管理單元。按一下 新增。從可用的嵌入式管理單元清單中選取 憑證

  3. 在對話方塊中,按一下 新增,然後選取 我的使用者帳戶 選項。此選項用於個人憑證。

  4. 按一下 完成

  5. 按一下 確定 以關閉新增/移除嵌入式管理單元對話方塊。

  6. 您現在會在 Microsoft 管理主控台的左側面板中看到 憑證 - 目前使用者。展開 [憑證 - 目前使用者] 樹狀項目,然後選取 個人憑證。右側面板會顯示先前匯入的核發給 MySQL 的憑證。按兩下該憑證以顯示其詳細資料。

  7. 將憑證匯入個人存放區後,您可以使用更簡潔的連線字串連線至資料庫,如下列程式碼所示

    using (MySqlConnection connection = new MySqlConnection(
       "database=test;user=sslclient;" +
       "Certificate Store Location=CurrentUser;" +
       "SslMode=Required"))
       
    {
       connection.Open();
    }

憑證指紋參數

如果您的存放區中有大量憑證,而且許多憑證具有相同的核發者,這可能會造成混淆,並導致使用錯誤的憑證。為了緩解這種情況,還有一個可選的憑證指紋參數,可以另外指定為連線字串的一部分。如先前所述,您可以按兩下 Microsoft 管理主控台中的憑證以顯示憑證的詳細資料。當顯示憑證對話方塊時,按一下 詳細資料 索引標籤,並向下捲動以查看指紋。指紋通常會是數字,例如 ‎47 94 36 00 9a 40 f3 01 7a 14 5c f8 47 9e 76 94 d7 aa de f0。此指紋可用於連線字串中,如下列程式碼所示

using (MySqlConnection connection = new MySqlConnection(
      "database=test;user=sslclient;" +
      "Certificate Store Location=CurrentUser;" +
      "Certificate Thumbprint=479436009a40f3017a145cf8479e7694d7aadef0;"+
      "SSL Mode=Required"))
{
    connection.Open();
}

指紋參數中的空格是可選的,且該值不區分大小寫。