Tag: keytool

java.io.IOException:使用Tomcat服务器的密钥库格式无效

在Tomcat 7中启用s​​sl模式时,我在tomcat日志中收到以下错误 我使用openssl生成.key文件,如下所示 openssl genrsa -des3 -out localhost 2048 我在tomcat server.xml中给出了我的密钥文件的路径 严重:无法初始化与ProtocolHandler相关的终点[“http-bio-8443”] java.io.IOException:无效的密钥库格式

使用新CSR(而不是原始CSR)续订具有Symantec续订的Java Keystore的命令

两年前,我获得了VeriSign / Symantec SSL证书。 启动此请求时,我们在随机服务器上创建了一个CSR,该服务器与证书的公用名无关。 要创建Java密钥库,我执行了以下两个步骤。 openssl pkcs12 -export -in common_name.cer -inkey common_name.key -out renewal.p12 -name common_name_alias -CAfile NewVerisignIM.cer -caname root keytool -importkeystore -deststorepass XXX! -destkeypass XXX! -destkeystore renewal.keystore -srckeystore renewal.p12 -srcstoretype PKCS12 -srcstorepass XXX! -alias common_name_alias 现在我们的证书即将到期。 在Symantec网站上使用原始条目并创建新CSR时,我们获得了签名证书文件(与上面的common_name.cer相同的文件名),私钥(与上面的common_name.key相同的文件名)。 在签署新的CSR之后,我们没有得到“NewVerisignIM.cer”文件,该文件似乎是根CA和中间CA组合在一个文件中(我相信的CA链)。 所以我不知道如何在没有该文件的情况下重新创建Java Keystore。 我尝试在签名后使用旧的“NewVerisignIM.cer”和新文件,但这不起作用。 这就是我到目前为止所做的一切。 我有一个Java例外 PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径 本网站包含使用原始CSR和使用JKS时的说明。 https://knowledge.symantec.com/kb/index?page=content&id=SO11942&pmv=print&actp=PRINT&viewlocale=en_US 但是这个问题/答案建议使用新的CSR。 使用Java Keytool续订证书 – 重用旧的CSR? 如果我们使用新的CSR,我可以使用哪些命令?

将.key和.pem文件导入jks文件并在Java / Spring中使用

我从服务团队获得了以下密钥/证书,通过SSL调用他们的API,我通过curl命令对其进行了validation。 1. QA.test.key 2. QA.test.pem CURL命令: curl –key QA.test.key –cert ./QA.test.pem -X POST –header “Content-Type: application/json” –header “Accept: application/json” -d ‘{“pan”:”1234567890123456″, “client”: ” Application Name “}’ https://test-qa.abc.com/tokenize 现在,要通过https在Java中调用API,我是否需要执行以下操作? 创建一个自签名的jks文件 将.key和.pem导入新的test.jks文件? 请执行下列操作 public class TestApp { final static String KEYSTORE_PASSWORD = “testing”; static { System.setProperty(“javax.net.ssl.trustStore”, “src/main/resources/test.jks”); System.setProperty(“javax.net.ssl.trustStorePassword”, KEYSTORE_PASSWORD); System.setProperty(“javax.net.ssl.keyStore”, “src/main/resources/test.jks”); System.setProperty(“javax.net.ssl.keyStorePassword”, KEYSTORE_PASSWORD); } public static void […]

如何设置java keytool的默认语言?

我使用Windows操作系统,英语和美式键盘设置。 我使用此命令生成密钥库。 它工作正常。 C:\java6\jre\bin\keytool -genkey -keyalg RSA -alias mykey -validity 3652 -keystore C:\mykeystore -storepass 111111111 < data.txt data.txt My name My org unit My org My city My state ch yes 但是,此程序无法在具有德语和键盘设置的Windows上正常工作。 我必须在data.txt中将“ yes ”“更改为” ja “以使其有效。 修改data.txt是不好的。 有没有办法将英语设为keytool的默认语言?

PKCS12到JKS转换失败

我正在尝试使用以下命令将PKCS12格式文件转换为JKS密钥库: keytool -v -importkeystore -trustcacerts -srckeystore cert.p12 -srcstoretype PKCS12 -destkeystore md_keystore.jks -deststoretype JKS 这将返回以下消息: 0 entries successfully imported, 0 entries failed or cancelled 我已经使用openSSL查看了cert.p12文件,看起来很好 – 它包含完整的证书链和私钥。 也没有返回堆栈跟踪,生成的密钥库文件也是空的。 任何人都有任何想法为什么密钥库无法导入看似有效的证书,但没有产生任何堆栈跟踪等?

java安全套接字没有认证?

我有一个简单的安全套接字服务器 – 客户端程序。 对于服务器证书,我使用keytool创建了一个密钥库。 当我尝试通过我的客户端连接到服务器时,我得到以下exception: 在服务器中: Exception in thread “main” javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown 在客户端: Exception in thread “main” javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) 如果我的理解是正确的,那么这些例外是由于我使用我创建的证书这一事实引起的。 我的问题如下: 如果我在服务器和客户端中设置启用的密码套件,所有* _anon *密码套件,这不应该解决问题吗? 我的意思是如果我启用*_anon_*密码套件,则不需要身份validation,因此没有例外。 它是否正确? 因为我仍然有例外。 我尝试在启用的密码套件中启用所有已启用的+ _anon密码套件。 没有成功。 我尝试只设置anon并获得一个新例外: Exception in thread “main” […]

keytool和jarsigner工具

我已经开发了一个黑莓应用程序,我已经加载到BB设备。 但正如我们所知,如果不使用RIM签署应用程序,我们就无法在设备上运行该应用程序。 有没有什么方法可以创建我的应用程序的试用版几天,并在设备中运行它以进行测试。 我听说过“keytool”和“jarsigner”工具。 这个工具可以帮助我在设备上运行我的应用程序而无需签署应用程序吗? 如果是,请告诉我有关如何完成的步骤或细节。

新手keytool命令 – 如何更新已添加到密钥库的证书?

我的linux电子邮件服务器exim有一个自签名证书。 为了使我的Java函数能够通过GlassFish访问这个电子邮件服务器,我最初发布了: # keytool -importcert -v -noprompt -alias mail.mycompany.com -file /path/to/mail.mycompany.com.der -keystore /path/to/config/cacerts.jks -storepass changeit Certificate was added to keystore 这很好,直到证书过期。 我不得不创建一个新的自签名证书,现在Java提供错误PKIX path validation failed … path does not chain with any of the trust anchors 。 为了解决这个问题,我从新的exim证书中派生了一个新的mail.mycompany.com.der文件(最初完成)。 但是当我发出上面的keytool命令(最初完成)时,它会给出错误Certificate not imported, alias already exists. 我认为问题是我不能使用相同的keytool命令。 我需要使用另一个不将证书添加到密钥库的证书,但是使用更新的版本更新证书。 任何人都能指出我正确的指挥方向吗? 顺便说一句,是否有一些我缺少的自动化流程? 也就是说,cert一直过期……这是否意味着IT管理员需要始终使用这样的代码手动使用新证书更新密钥库? 或者,这可以以某种方式自动化吗?

Keytool不被识别为内部或外部命令

我试图使用本文中的说明发现Java Runtime中的受信任权限列表。 当我输入以下命令时: C:\ColdFusion8\runtime\jre\lib>keytool -list -storepass changeit -noprompt -keystore 我收到以下错误: ‘keytool’不被识别为内部或外部命令,可操作程序或批处理文件。 我检查了包含我的keytool可执行文件的目录是否在路径中。 (在我的Windows 7机器上,它位于C:\Program Files (x86)\Java\jre6\bin )尽管如此,命令行仍无法识别keytool命令。 我假设在doc中提到了两个独立的命令: C:\CFusionMX\runtime\jre\lib>keytool -list -storepass changeit -noprompt -keystore C:\CFusionMX\runtime\jre\lib\security\cacerts 编辑: 那么我可以使用以下过程而不是答案中提到的复杂步骤吗? 当我在我的浏览器中打开WSDL时,我看到了Lock图标,当我点击它时打开了一个“Certificate”窗口 然后我点击“安装证书”选项 打开证书导入向导窗口,我单击Next我看到两个选项 a)根据证书类型自动选择证书存储(自动选择此选项) b)将所有证书放在以下商店中 我决定选择选项(b) ,但我很困惑我应该选择哪个证书商店。

Keytool设置主机名

我只是试图使用java keytool,但我无法弄清楚如何设置主机名。 这就是我尝试的方式: hostname[username:/this/is/a/path][640]% keytool -keystore server.keystore -genkeypair -alias hostname Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: hostname What is the name of your organizational unit? [Unknown]: hostname What is the name of your organization? [Unknown]: hostname What is the name of your City or Locality? [Unknown]: hostname […]