我有一个使用自签名JAR的Java Web Start应用程序。该应用程序仅供内部用户使用。我正在尝试使用证书签署JAR。 我使用java keytool创建了证书请求,并将该请求提交给公司中的另一个团队(Active Directory服务器证书请求)。他们将证书链作为.p7b文件提供。
我从.p7b文件中提取了三个.cer文件,并将这三个文件都导入了密钥库并签名了JAR。
但是在那之后,当我部署新的签名JAR文件时,我仍然面临着作为自签名应用程序的问题。我已经清除了笔记本电脑上的临时Internet文件,以清除是否有任何缓存的jar文件。
我遵循的步骤是
生成密钥库
keytool -keysize 2048 -keystore keystore -genkey -alias测试
生成CSR
keytool -certreq -alias test -file csr.csr -keystore密钥库
警告: JKS密钥库使用专有格式。推荐 迁移到行业标准格式PKCS12 使用“ keytool -importkeystore -srckeystore ictkeystore- destkeystore ictkeystore -deststoretype pkcs12“。
我收到此警告,然后执行并运行命令以 迁移到PKCS12
我收到的证书链为.p7b文件。 我单击了Windows上的.p7b文件,并从.p7b文件中导出了三个.cer文件
我将三个.cer文件一个一个地导入了密钥库。
keytool -import -alias root -keystore keystore -trustcacerts -file ATLPRDCA01.cer
keytool-导入-alias intermed -keystore密钥库-trustcacerts-文件uss-ATLPRDCA01-CA.cer
keytool -import -alias incomm -keystore keystore -trustcacerts -file ibomdmict.incomm.com.cer
它说证书被添加到以上三个中的每一个上的密钥库中。
**当用户运行JNLP文件(它将使用JAR)时,用户(客户端)计算机上的Java如何知道JAR文件由受信任的证书签名? 如果通过使用用户计算机JDK上的cacerts文件并通过与cacerts列表进行比较来检查我的证书是否有效,那么用户计算机上的cacerts如何知道我从我公司使用的证书?
要使其正常工作,我是否必须使用VeriSign之类的公司的公共证书或其他证书颁发机构?