use*_*141 6 java code-signing certificate keytool
我需要能够使用CA的证书对jar文件进行签名.
我按照GoDaddy文档中有关如何执行此操作的说明操作:http: //support.godaddy.com/help/article/4780/signing-java-code
但是,步骤3需要导入从GoDaddy网站获得的证书文件.根据文档,命令是:
keytool -import -trustcacerts -keystore codesignstore -storepass <yourstorepwd> -alias codesigncert -file mycert.cer
Run Code Online (Sandbox Code Playgroud)
虽然我成功提交了CSR(由keytool生成)并获得了响应,但我无法终身了解如何获取mycert.cer文件.可以选择下载PEM文件.但是在运行上面的命令后,我收到错误"keytool error:java.lang.Exception:Incomplete certificate chain in reply".我已多次尝试过,并仔细检查我正在使用正确的密钥库.我甚至尝试过使用SSH-1重新键入一次,然后再使用SSH-2重新键入.根据这个人(/sf/ask/1455527811/?rq=1),他们至少能够成功导入PEM文件.但我不确定这是否是正确的方法.
GoDaddy的技术支持绝对可怕.我所谈到的大多数技术人员根本不熟悉keytool,在他们转发给他们的SSL部门(480-505-8852)之前,我花了好几次尝试打电话给他们,这至少比一般情况要好一些.支持.
如果我使用Internet Explorer或Firefox,我相信我可以自动生成CSR而不是创建一个通过密钥工具.然后我将通过Web浏览器导出证书.从阅读各种其他在线文档,我相信我可以使用openssl转换为keytool的正确格式.我不确定这将如何工作的细节,但我没有看到任何其他选择.
有没有人成功的这个或有任何指示如何进行?我在这里找到了一个类似的问题(用GoDaddy的spc文件签署一个java小程序),但答案只是指向GoDaddy的糟糕文档.如果可以的话,我会使用另一个CA,但我已经付了钱并经历了漫长而漫长的验证过程.
Ric*_*mer 10
解决方法是联系GoDaddy并让他们重新颁发您组织的证书.在证书设置过程中,您必须选择SHA-1协同代码证书而不是SHA-2.选择SHA-1的选项仅在证书有效期未延伸到2016(见下文)时才可用,因此请确保他们了解您的最终目标是将SHA-2证书重新创建为SHA-1,因此他们知道向您出售具有正确有效期的证书.
我今天将SHA-2证书交换为SHA-1,GoDaddy的Java代码签名说明完美无缺.
GoDaddy通知我,Keytool可能无法导入从其SHA-2(2048长度)协同代码证书生成的证书响应链.我保留对Keytool的判断,因为当根据@mogsie的答案从gom文件中删除GoDaddy的根SHA1证书时,它会导入SHA-2证书.
GoDaddy在授予将延长到2017年的代码签名证书时会自动使用SHA-2,因为从2016年1月1日开始微软不会接受少于SHA-2的协议,因此如果您在市场上获得SHA-1证书,它将会具有短期效力.
Java Keytool更新(我使用的是1.6)或者GoDaddy的Sha256withRSA自签名证书变得广泛受信任,这个问题可能会消失.
正如Waterbear所提到的,答案是让你的GoDaddy证书重新发布或由GoDaddy重新使用SHA-1
.的原因是,GoDaddy的有两个CA服务器:Class 2 CA
这是用于签名SHA-1
的证书,并且G2 CA
其用于签名SHA-2
的证书.而老Class 2 CA
的由Java信任库信任的(因此SHA-1 certificates
是可信的),较新的G2 CA
是不是,所以它的SHA-2
证书不被信任,除非你手动安装根证书(这违背了摆在首位购买证书的目的).希望GoDaddy G2 CA
很快就会受到Java Truststore的信任(2016年之前!),但在此之前,GoDaddy SHA-2
证书并不比自签名证书更好.
小智 5
由于我非常喜欢(不)创建代码证书的过程,我想我会分享我经历的过程,并希望当你需要生成自己的过程时,这将为你节省一些心痛和痛苦.
我使用的是godaddy,但我必须相信CA的步骤应该非常相似.
这些是我通过的步骤:
(请注意,godaddy不会以jks格式创建代码签名证书,并且还需要额外的步骤将密钥库转换为jks)
keytool -genkey -alias codesigncert -keypass yourpassword -keyalg RSA - keysize 2048 -dname"cn = server1.lccc.edu,OU = College Name,O = College Name,L = Schnecksville,ST = Pennsylvania,C = US" - keystore/home/oracle/codesignstore/codesignstore -storepass yourpassword -validity 720(storepass和keypass可以是相同的)
keytool -certreq -v -alias codesigncert - file /home/oracle/codesignstore/codesignstore.pem - keystore/home/oracle/codesignstore/codesignstore
当godaddy验证帐户并且您付款时,"待处理"状态将会消失
去你的godaddy帐户(https://mya.godaddy.com/)
点击页面顶部的myaccount(在黑色标题中)
单击"管理SSL证书"
选择列出的代码签名证书
单击"启动"按钮
将文件下载为PEM文件
将它保存在您的本地电脑上
证书应列在托管视图上.
突出显示证书并选择备份(导出)并将其另存为pkcs12文件
单击证书查看器旁边的屏幕顶部的视图证书是双引号中的别名,右下角它将是下面jarsigner命令中使用的别名
used :(例如server1/home/oracle/code_sign_cert_from_godaddy/godaddy_pkcs12.p12)*这是新的密钥库
因为密钥库必须是jks类型,而且godaddy不会创建jks文件,所以必须将其转换为jks格式
keytool -importkeystore - srckeystore/home/oracle/code_sign_cert_from_godaddy/godaddy_pkcs12.p12 -srcstoretype pkcs12 - destkeystore /home/oracle/code_sign_cert_from_godaddy/godaddy_jks.jks-deststoretype jks
unsign jacob.jar ...我将jacob.jar文件复制到测试目录/ test_jacob并将其重命名为jacob1.jar(注760815.1)
jar xf jacob1.jar
提取到"com"和"META-INF"文件夹中,删除"META-INF"文件夹
删除旧的jacob1.jar
从/ test_jacob目录重新创建jacob1.jar
jar -cvf jacob1.jar*
运行jarsigner -verify jacob1.jar,应该显示unisigned.
创建一个文本文件,调用mymanifest.txt
Permissions: all-permissions
Codebase: *
Application-Name: OracleForms
Run Code Online (Sandbox Code Playgroud)
jar -ufm jacob1.jar mymanifest.txt(这会将新的清单信息放入jar文件中)
你可以使用unzip jacob1.jar -d目录打开jacob1.jar,其中unzip将驻留在该目录中,以验证mymanifest.txt文件现在是jar文件的一部分.
jarsigner - keystore /home/oracle/code_sign_cert_from_godaddy/godaddy_jks.jks - storepass yourpassword - signedjar/home/oracle/Oracle/Middleware/Oracle_FRHome1/forms/java/tes t_jacob/Signedjacob1.jar jacob1.jar"lehigh carbon community college's godaddy.com ,inc.id"(这个别名来自上面的firefox进程)
keytool命令没有-alias选项
jarsigner -verify Signedjacob1.jar将显示:
jar验证.
jar -tvf Signedjacob1.jar
文件也在.jar文件中
2721 Mon May 05 15:57:08 EDT 2014 META-INF/LEHIGH_C.SF
4231 Mon May 05 15:57:08 EDT 2014 META-INF/LEHIGH_C.RSA
我将Signedjacob1.jar文件复制到$ ORACLE_HOME/forms/java目录,然后使用
登录weblogic企业管理器
我为每个实例将webutilarchive参数从Jacob.jar更改为Signedjacob1.jar
(em >> forms >> web配置>>实例名称>> all(第一个条目应该是archive参数)
将jacob.jar更改为Signedjacob1.jar时,我在为生产做之前为每个测试实例做了这个,以防万一.
停下来开始wls_forms,你应该好好去......
归档时间: |
|
查看次数: |
13993 次 |
最近记录: |