如何建立比 SHA-1 更強的自簽名憑證?

如何建立比 SHA-1 更強的自簽名憑證?

對於開發環境,我可以在IIS7.5中建立自簽名憑證。但該證書是 SHA-1,最近瀏覽器對此有所抱怨。當我打開 FireBug 時,我看到以下警告:

“網站使用 SHA-1 憑證;建議您使用比 SHA-1 更強的雜湊函數的簽章演算法的憑證。”

所以我的問題是:

1)有沒有辦法建立比 SHA-1 更強的自簽名憑證?

2)如果沒有,有沒有辦法告訴瀏覽器停止顯示這些警告?

更新

我最終使用了 @vcsjones 的答案,但這只能讓我到目前為止。在讓它發揮作用之前,我必須解決幾個問題。

1)由於某種原因,我無法匯入帶有密碼的憑證。所以我最終創建了一個沒有它的東西。

2) 當我透過 IIS 匯入 .pfx 憑證時,當我嘗試在編輯綁定中套用新憑證時,我不斷收到「指定的登入會話不存在」的訊息。所以我做了很少的研究並發現了這個所以答案有用,特別是 Mike L 的回答。

我要補充的另一件事是,當您匯入憑證時,請記住選擇.pfx憑證。匯入精靈預設選擇是 *.cer,您可以匯入它(我犯的錯誤),但後來我無法在 IIS 伺服器憑證中看到憑證。當我仔細觀察時,圖標中缺少一個小鍵。現在,我做了研究,我可以透過修復它KB-889651文章。因此,請確保導入 .pfx,它無需修復即可工作。

另請注意,如果您對此憑證有信任問題,請將其匯入「受信任的根憑證授權單位」。

答案1

當然。這makecert作為 Windows SDK 一部分的實用程式可以執行以下操作:

makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer

-a參數設定哈希演算法。這會產生一個 PVK 和一個 DER .cer 檔案。當然,您也可以將通用名稱更改為您想要的任何名稱,我只是使用 localhost 作為範例。您可以使用pvk2pfx(也是 SDK 的一部分)將它們組合到 PFX(IIS 在匯入憑證時更喜歡使用的 PFX) :

pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx

這只是將產生的兩個檔案makecert合併為 PKCS12 .pfx 檔案。

使用產生的 PFX 文件,您可以開啟 IIS 並將其匯入伺服器憑證下,然後變更網站的綁定以使用新憑證。

答案2

我在工作中使用鎖定的 Windows 7 Enterprise 計算機,因此我無法安裝 Windows SDK 來存取makecert.以下是我建立 sha256 自簽名憑證的方法(取自https://core.telegram.org/bots/self-signed):

  1. 決定要將證書保存在哪個目錄中
  2. template.txt在該目錄中建立一個名為以下內容的文字檔案:

    [NewRequest]
    
    ; At least one value must be set in this section
    Subject = "CN={your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
    ;MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet=false ;generates a new private key (for export)
    Exportable = true ;makes the private key exportable with the PFX
    
  3. 替換{your.domain.com}為您將用於存取網站的地址,例如"CN=localhost"

  4. 開啟命令提示字元並變更到您的憑證目錄
  5. 跑步certreq -new template.txt RequestFileOut
  6. 您需要知道序號,因此運行certutil -store -user my以獲取包含序號的轉儲
  7. 替換{SERIALNUMBER}為轉儲中的序號和{YOURDER}.crt輸出檔案的名稱:certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. 替換{YOURDER}.crt為輸入檔案的名稱和{YOURPEM}.cer輸出檔案的名稱:certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. 替換{your.domain.com}為您的實際(測試)網域名稱和{YOURPKCS}.pfx輸出檔案的名稱:certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

之後,我轉到 IIS 管理器,網站 -> {網站名稱} -> 綁定...(在「編輯網站」下)。然後我點擊 https/443,因為我已經設定了它,「編輯...」並從清單中選擇了新憑證。

Firefox 抱怨我的網站使用自簽名證書,所以我只是將其添加為例外,瞧!有效!

答案3

是的,我也收到“指定的登入會話不存在”錯誤/警告訊息。

我只是第二次單擊“確定”,它就接受了。

相關內容