對於開發環境,我可以在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):
- 決定要將證書保存在哪個目錄中
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
替換
{your.domain.com}
為您將用於存取網站的地址,例如"CN=localhost"
- 開啟命令提示字元並變更到您的憑證目錄
- 跑步
certreq -new template.txt RequestFileOut
- 您需要知道序號,因此運行
certutil -store -user my
以獲取包含序號的轉儲 - 替換
{SERIALNUMBER}
為轉儲中的序號和{YOURDER}.crt
輸出檔案的名稱:certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
- 替換
{YOURDER}.crt
為輸入檔案的名稱和{YOURPEM}.cer
輸出檔案的名稱:certutil -encode {YOURDER}.crt {YOURPEM}.cer
- 替換
{your.domain.com}
為您的實際(測試)網域名稱和{YOURPKCS}.pfx
輸出檔案的名稱:certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain
之後,我轉到 IIS 管理器,網站 -> {網站名稱} -> 綁定...(在「編輯網站」下)。然後我點擊 https/443,因為我已經設定了它,「編輯...」並從清單中選擇了新憑證。
Firefox 抱怨我的網站使用自簽名證書,所以我只是將其添加為例外,瞧!有效!
答案3
是的,我也收到“指定的登入會話不存在”錯誤/警告訊息。
我只是第二次單擊“確定”,它就接受了。