創建自簽名數字證書PFX格式
1 在系統中安裝一個自簽名數字證書
1.1 安裝makecert.exe,可直接安裝Visual Studio(Visual Studio包含makecert.exe)
1.2 使用makecert.exe在系統中安裝一個自簽名數字證書
1.2.1 打開vs的命令行。
makecert -r -pe -n "CN=DOXX CA" -$ commercial -a sha1 -b 01/01/2020 -e 01/01/2100 -cy authority -ss root -sr currentuser
- 1
其中:
-r 創建一個自簽名證書。
-pe 將私鑰標記為可導出。
-n “名稱” 發布者證書的名稱。該名稱必須符合X.500標准。最簡單的方法是使用“ CN = MyName ”格式。例如:-n“ CN = Test”。
-$ 證書頒發機構 認證機構的類型。必須將CertificateAuthority設置為commercial商業的(對於要由商業軟件發行者使用的證書)或individual個人的(對於要由各個軟件發行者使用的證書)。
-a 一種 算法 哈希算法。必須設置為SHA-1或MD5(默認為MD5)。
-b 日期開始 證書首次生效的日期。默認值為創建證書的時間。DateStart的格式為mm/dd /yyyy。
-e 日期結束 有效期結束的日期。默認值為2039年。
-cy 證書類型 證書類別。CertificateTypes可以end結束對終端實體,或authority權威機構的權威認證。
-ss 主題證書存儲庫的名稱,將在其中存儲生成的證書。
-sr 主題的證書庫的注冊表位置。必須是LocalMachine(注冊表項HKEY_LOCAL_MACHINE)或CurrentUser(注冊表項HKEY_CURRENT_USER)(默認為CurrentUser)。
1.2.2 在彈出的對話框中點擊“確定”。
1.2.3 成功創建數字證書命令行將提示"Succeeded"
2 將自簽名數字證書導出為帶密碼的PFX格式(含私鑰)
2.1 尋找創建的自簽名證書
2.1.1 按下Windows+R組合鍵輸入“certmgr.msc”,點擊確定。
2.1.2 依次點開“受信任的根證書頒發機構”-“證書”,找到“DOXX CA”

2.2 導出“DOXX CA”證書為PFX格式(含私鑰)
右擊“DOXX CA”,依次點擊所有任務-導出
按照下圖指示點擊“下一步”
這里選擇導出私鑰點擊“下一步”
繼續點擊“下一步”
選擇使用密碼,並輸入PFX證書文件的訪問密碼(要記住此密碼),更改加密方式為AES-256方式,點擊“下一步”

點擊“瀏覽”選擇保存位置,點擊“下一步”
signtool簽名
signtool sign /f "D:\sign.pfx" /p 證書密碼 /fd SHA256 "D:\a.exe"
signtool在 C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool
C#讀取文件簽名證書
var cert = X509Certificate2.CreateFromSignedFile(@"D:\a.exe");
