如何申請和使用程式碼簽章證書
程式碼簽章證書簡介
程式碼簽章證書用於對軟體程式碼進行數位簽章,以驗證軟體的發布者身份並確保程式碼的完整性。它向使用者保證軟體來自可信的來源,並且在發布後未被竄改或惡意修改。這對於建立使用者信任和防止惡意軟體傳播至關重要。
程式碼簽章證書的用處:
- 驗證軟體發布者身份: 程式碼簽章證書驗證軟體的來源,使使用者確信軟體來自合法的開發者或組織。
- 確保程式碼完整性: 數位簽章可以證明程式碼自簽章以來未被修改,防止惡意軟體注入或篡改。
- 提升使用者信任: 經過簽章的軟體可以消除操作系統或瀏覽器發出的安全警告,提升使用者對軟體的信任度,鼓勵使用者安裝和使用。
- 防止惡意軟體傳播: 程式碼簽章可以幫助使用者識別和避免安裝未簽章或來自未知來源的潛在惡意軟體。
透過ServBay申請程式碼簽章證書
打開SSL證書管理面板: 在ServBay的側邊欄中,點擊 "SSL Certificates" 即可進入證書管理平台。
點擊新增按鈕: 點擊右上角的 "+" 按鈕。
填寫證書資訊: 在 "Request Certificate" 頁面中,填寫以下資訊:
- Common Name: 填寫您的組織名稱或個人姓名。例如
ServBay, LLC
或Sam NG
。 - Usage Purpose: 選擇證書用途,選擇
Code Signing
。 - Request Method: 選擇
ServBay CA
。 - Issuer: 選擇
ServBay User CA
。 - Algorithm: 選擇加密算法,例如
ECC
或RSA
。 - Key Length: 選擇密鑰長度,例如
384
或2048
。 - Password: 重要! 設定一個密碼來保護您的私鑰。請牢記此密碼,因為遺失後將無法找回。預設密碼是
ServBay.dev
。
- Common Name: 填寫您的組織名稱或個人姓名。例如
點擊 "Request" 按鈕: 完成所有步驟後,點擊 "Request" 按鈕提交證書申請。ServBay會自動簽發證書。
證書匯出和使用
- 進入SSL證書管理面板。
- 找到簽發的程式碼簽章證書。
- 點擊操作按鈕: 點擊證書右側的匯出圖示。
- 選擇匯出目錄: 在彈出的窗口中,選擇證書匯出後要儲存的位置。
- 使用程式碼簽章工具: 將匯出的
.p12
文件匯入到您的程式碼簽章工具(例如codesign
(macOS),signtool
(Windows) 等)中,並使用之前設定的密碼進行解鎖。之後,您就可以使用該證書對您的程式碼進行數位簽章。
使用程式碼簽章證書對程式碼進行簽章的例子
bash
$ gcc test.c -o /tmp/test # 使用 gcc 生成一個用於測試的二進位文件
$ security find-identity -v -p codesigning # 查找可以用於程式碼簽章的證書
1) ...
2) 99C183BC3796067FAFBA6F232D1C3C3425DAABDA "ServBay, LLC"
2 valid identities found
$ codesign -f -s "99C183BC3796067FAFBA6F232D1C3C3425DAABDA" --timestamp /tmp/test # 使用上面找到的證書 ID 來進行簽章
test: replacing existing signature
$ codesign -dvvv /tmp/test # 驗證簽章是否正確
Executable=/tmp/test
Identifier=test
Format=Mach-O thin (arm64)
CodeDirectory v=20400 size=445 flags=0x0(none) hashes=9+2 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha256=777e597ce37ad27e7b90d2aaaeeb9f1449170639
CandidateCDHashFull sha256=777e597ce37ad27e7b90d2aaaeeb9f1449170639a73e8090b1d9d1245d7f191b
Hash choices=sha256
CMSDigest=777e597ce37ad27e7b90d2aaaeeb9f1449170639a73e8090b1d9d1245d7f191b
CMSDigestType=2
CDHash=777e597ce37ad27e7b90d2aaaeeb9f1449170639
Signature size=7247
Authority=ServBay, LLC
Authority=ServBay Public CA - ECC Code Signing
Authority=ServBay Public CA - ECC Root
Timestamp=Nov 7, 2024 at 18:26:48
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=80
$ echo "abcde" > test # 嘗試破壞二進位文件的證書簽章
$ codesign -dvvv test # 再次驗證簽章
test: code object is not signed at all
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
證書續期
ServBay的程式碼簽章證書有效期是800天。證書到期前,你可以點擊右側的按鈕進行續期。每次重新續期,有效期為當前日期+800天。
證書刪除
- 進入SSL證書管理面板。
- 找到需要刪除的證書。
- 點擊操作按鈕: 點擊證書右側的垃圾桶圖示。
- 確認刪除: 在彈出的選單中選擇 "Delete",並確認刪除操作。
總結
希望以上文件能夠幫助您在ServBay平台上申請和使用程式碼簽章證書。如果您有任何疑問,請聯繫ServBay客服尋求協助。