本指南将帮助您开始使用 OV / IV or EV 来自SSL.com的代码签名证书。 这些说明假定您的计算机上已安装Java开发工具包(JDK),并且 keytool
和 jarsigner
命令包含在您的 PATH 中。 Yubikey 代码签名说明假定您的证书安装在 a 的插槽 9a 中 YubiKey FIPS 令牌,因为它们由SSL.com发行。
从1年2023月XNUMX日开始,SSL.com 的组织验证 (OV) 和个人验证 (IV) 代码签名证书已通过联邦信息处理标准 140-2 (FIPS 140-2) USB 令牌或通过我们的 eSigner 云代码签名服务颁发。 本次变更符合规定 符合证书颁发机构/浏览器 (CA/B) 论坛的新密钥存储要求,以提高代码签名密钥的安全性。
如果您还没有代码签名证书,并且不确定所需的类型,请阅读 这个FAQ.
SSL.com的 OV / IV代码签名 证书是保护您的代码免遭未经授权的篡改和破坏的一种经济方法,并且证书的使用期限仅为 $ 64.50每年.
OV/IV 代码签名(仅适用于 1 年 2023 月 XNUMX 日之前颁发的 OV/IV 证书)
配置
方法1:生成 CSR 和浏览器中的PFX文件
快速开始使用Java代码签名的最简单方法是生成一个 CSR 和从SSL.com检索证书并将其安装在新的Java密钥库中的PFX文件。
请注意: 也可以签署您的
.jar
通过添加未转换的PFX文件直接添加文件 -storetype pkcs12
标记到 jarsigner
命令。- 请按照 订购和检索代码签名证书 订购证书并使用证书和私钥下载PFX文件。
- 使用以下命令将PFX导入到具有相同密码的新密钥库中。 (更换
MY-CERTIFICATE.p12
和MY-KEYSTORE.jks
以及您的PFX文件的实际名称和您要提供给密钥库的文件名。 另请注意destalias
是任意的,如果需要,您可以使用另一个别名。)keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias代码签名
请注意: 的价值-srcalias
从SSL.com下载的PFX文件通常应为1
,但是您可以通过运行以下命令来确认keytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
并检查显示的值Alias name
. - 系统将提示您输入目标密钥库的密码,然后输入源密钥库的密码(创建PFX时输入的密码)。 您可能还会看到一条以以下内容开头的警告消息
Warning: The JKS keystore uses a proprietary format
。 您可以放心地忽略此消息。
方法2:生成密钥对和 CSR 用Java
如果您希望生成密钥对,并 CSR 对于Java,请遵循本节中的步骤。 该过程与创建一个 CSR 为 SSL /TLS 证书 在Java中。
创建密钥库和密钥对
- 首先,我们将创建一个密钥库和公用/专用密钥对。 Java使用带有扩展名的文件
.jks
(Java KeyStore)来存储证书和加密密钥。 输入以下命令以生成密钥库和3072位RSA密钥对。 (更换MY-KEYSTORE.jks
以及您想要文件具有的名称。)keytool -genkeypair-别名编码-keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
- 您将看到一系列提示。 首先,创建并验证密钥库的密码,然后输入并验证请求的信息。 (用您自己的信息替换所有大写字母中显示的值。)
输入密钥库密码:重新输入新密码:您的名字和姓氏是什么? [未知]:FIRSTNAME LASTNAME 您的组织名称是什么? [未知]:公司 您所在城市或地区的名称是什么? [未知]:CITY 您所在的州或省的名称是什么? [未知]:STATE 本机的两个字母国家代码是什么? [未知]:US CN=FIRSTNAME LASTNAME、OU=DEPARTMENT、O=COMPANY、L=CITY、ST=STATE、C=US 是否正确? [否]:是的
- 密钥库文件已生成,您可以创建一个 CSR.
产生 CSR
- 输入以下命令以生成一个 CSR 从我们刚刚创建的密钥库中。 (更换
MY-KEYSTORE.jks
与您在创建密钥库时使用的值和MY-CSR.csr
与您要用于的名称 CSR.)keytool -certreq -alias codesigning -file MY-CSR.csr-密钥库MY-KEYSTORE.jks
- 输入您在生成密钥库时创建的密码。
输入密钥库密码:
- 特 CSR 已经被创造了。 如果您准备从SSL.com订购证书,请在文本编辑器中打开文件以将其复制并粘贴到 CSR 订购时输入字段。 该文件的内容类似于以下示例:
-----BEGIN NEW CERTIFICATE REQUEST----- MIIC5TCCAc0CAQAwcDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVNUQVRFMQ0wCwYD VQQHEwRDSVRZMRAwDgYDVQQKEwdDT01QQU5ZMRMwEQYDVQQLEwpERVBBUlRNRU5U MRswGQYDVQQDExJGSVJTVE5BTUUgTEFTVE5BTUUwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQCrRyk8VLs1THls+vfz0YtMJ3qYYl4c5c499d1YSbfQHa6L kIYhKTxvgdtbD+ePDigKB40CpeuMp5Yu8R6g2YIVBpGMrejAZYAmrzs6tfjpelh0 ocSDwYr7H8qQ9jq6MfZTu6J7EjS5RMODB6MVq1usKg3H866xbi6lqAtcktEF+zlM 4FW9Tm3H/DW2G7EnTjlMPzgaXNIU7lLar7YAWPJgv83NV8lQNCDW4lFlZLWBU95r YkJ4gfWUFUyPc+AiGbsyDdrVjPvF5yaebnFDrwheFaWeTTigSfLY688G7bpA8VvE lKioCl8nlJlc9HOBNKKdhs4qEtF0BwSE8tOgbkWPAgMBAAGgMDAuBgkqhkiG9w0B CQ4xITAfMB0GA1UdDgQWBBTmVpJp824krUaJKrQNhsSbVjJA1jANBgkqhkiG9w0B AQsFAAOCAQEALlux89RkXyHN4PQqQHbShSeTTWLURII+F+OSK9N1RS5l8V7AMcRM wvOkPP7JBRCKiaFGTW+5vcLQNnWRqQZMe0I4E0jzhL2gGsdChPIJy9Jwgn3Rzxmw 8V0lBY1SHQ9LKgSK0jIer3PQhXHDJlE2g2Dx8nJ4WJk7l2OTF9Kkly9hg8MOQdeg VIcs3HLsVI9Cwd6UHRT6ruKL3+bRgEcb6qj+qcrKHkzN7KXbOEznd10nAm87wENS mTb012ZFMlpUDvPNAHQgoGJ6slA+pIoH1fvrkosjql7R/H7Q+onm37Qa6d9L2ZqM MhgNpNWVwI0UBU4Xy4p9oUCJnvHhQ7U+3w== -----END NEW CERTIFICATE REQUEST-----
订购和取回证书
- 请按照 订购和检索代码签名证书 通过步骤24。而不是立即单击 产生证书 按钮,选中标记为 我有我自己的 CSR.
- 贴上你的 CSR 进入表单字段,然后点击 产生证书 按钮。
- 点击 下载 按钮并保存
.crt
文件与生成密钥库的位置相同。
将证书导入密钥库
- 使用以下命令将证书导入到Java密钥库文件中。 (将MY-CERTIFICATE.crt和MY-KEYSTORE.jks替换为实际的文件名。)
keytool -importcert-文件MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias代码签名
- 出现提示时输入密钥库密码。
输入密钥库密码:
- 您的证书已安装在密钥库中,您可以开始对文件进行签名了。
证书回复已安装在密钥库中
用Jarsigner签名文件
- 使用以下命令将带有时间戳的数字签名添加到
.jar
文件。 (更换/PATH/TO/MY-KEYSTORE.jks
和MY-JAR.jar
与您使用的实际文件名。 如果在设置密钥库时使用了其他别名,请用它代替codesigning
在命令中。)jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks MY-JAR.jar代码签名
注意:也可以在.jar
通过添加未转换的PFX文件直接添加文件-storetype pkcs12
标记到jarsigner
命令。
请注意: 默认情况下,SSL.com 支持来自 ECDSA 密钥的时间戳。
如果您遇到此错误:The timestamp certificate does not meet a minimum public key length requirement
,您应该联系您的软件供应商以允许来自 ECDSA 密钥的时间戳。
如果您的软件供应商无法允许使用普通端点,您可以使用此旧版端点http://ts.ssl.com/legacy
从 RSA 时间戳单元获取时间戳。 - 在提示符下输入密钥库密码。
输入密钥库的密码:
- 文件已签名。 您可以使用以下命令来验证签名:
jarsigner-verify-verbose MY-JAR.jar
- 如果文件已成功签名,则命令的输出应包含以下行:
s =签名已验证
使用 YubiKey 进行 IV、OV 和 EV 代码签名
SSL.com的 EV代码签名 证书可提供Windows 10内核模式代码签名和即时SmartScreen信誉提升,所有这些低至 $ 240.00每年。 他们安全地交付 YubiKey FIPS 具有两因素身份验证的USB令牌。
配置
安装PKCS#11驱动程序并创建eToken.cfg文件
Windows
- 按照OpenSC的说明安装OpenSC Windows快速入门.
- 找到OpenSC PKCS#11驱动程序。 默认安装位置是
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - 创建配置文件并将其保存在方便的位置(例如您的主目录)。 文件名是任意的,但是在本指南中,我们将使用
yubikey-pkcs11-java.cfg
。 该文件应包含以下信息:名称= OpenSC-PKCS11描述=通过OpenSC库的SunPKCS11 = C:\ Program Files \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
macos
- Install 安装 OpenSC。 如果你使用 家酿 作为软件包管理器,您可以使用以下命令安装OpenSC:
酿造安装opensc
- 找到OpenSC PKCS#11驱动程序。 如果使用Homebrew安装,则该文件应位于以下位置:
/usr/local/lib/opensc-pkcs11.so
. - 创建配置文件并将其保存在方便的位置(例如您的主目录)。 文件名是任意的,但是在本指南中,我们将使用
yubikey-pkcs11-java.cfg
。 该文件应包含以下信息:名称= OpenSC-PKCS11描述=通过OpenSC库的SunPKCS11 = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0
用Jarsigner签名文件
- 使用以下命令将带有时间戳的数字签名添加到
.jar
文件。 (更换MY-JAR.jar
以及您正在使用的实际文件名。)jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore无-storetype PKCS11 MY-JAR.jar“用于PIV身份验证的证书”
- 在密码提示下输入您的YubiKey PIN。
输入密钥库的密码:
- 文件已签名。 您可以使用以下命令来验证签名:
jarsigner-verify-verbose MY-JAR.jar
- 如果文件已成功签名,则命令的输出应包含以下行:
s =签名已验证
感谢您选择SSL.com! 如有任何疑问,请通过电子邮件与我们联系 Support@SSL.com,致电 1-877-SSL-SECURE,或只需单击此页面右下方的聊天链接。 您还可以在我们的网站上找到许多常见支持问题的答案 知识库.