我使用keytool命令获取了jks类型的密钥库文件。现在我需要获得一个自签名证书来测试开发。我无法理解如何生成使用keytool命令尝试的证书,但我得到的例外情况是"非法选项,找不到文件" 。那么,任何人都可以指定正确的方法吗?我跟着apacheSSLconfig 但我无法使用这些命令获取.cer文件。提前致谢
答案 0 :(得分:1)
1 .. 创建密钥库
keytool -genkey -alias name1 -keyalg RSA -keystore name1.keystore -storepass password -keypass keypassword -storetype JKS -keysize 1024
name1
- 别名(您可以提供自己的别名)
name1.keystore
- 要创建的密钥库文件名(您可以指定位置,如c:\ name1.keystore)
password
- 密钥库密码
keypassword
- 密钥库密钥密码(私钥)
2 .. 出口证明
keytool -export -alias name1 -keystore name1.keystore -rfc -file name1.cert -storepass password
name1.keystore
- 密钥库位置
name1.cert
- 要导出的证书名称(您可以指定xport证书的完整路径)
password
- 密钥库密码
3 .. 将证书导入Truststore
keytool -import -alias name1 -file name1.cert -keystore name1.TrustStore -storepass truststorepassword
name1.cert
- 在步骤之前导出的证书的位置。
name1.TrustStore
- 信任库名称(可以指定完整路径)
truststorepassword
- 信任商店密码
答案 1 :(得分:1)
首先,您必须了解keytool处理java密钥库文件,这是证书和密钥(see this post)的Oracle容器格式。请注意,密钥库中的每个条目都有一个操作密钥库时必须引用的别名。所以当你跑:
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
您基本上创建了一个密钥库,其中包含一个自签名证书别名为“自签名”#39;。如果您需要实际的证书文件,可以使用以下命令从密钥库中导出:
keytool -exportcert -keystore /path/to/keystore.jks -storepass <password> -alias selfsigned -file ./name.cer
如前所述。但你不需要。按照Tomcat文档中Configuration section中的说明,您只需创建密钥库并配置服务器以通过编辑NIO连接器来使用它:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="path/to/keystore.jks" keystorePass="<the password>"
clientAuth="false" sslProtocol="TLS"/>
确保运行Tomcat的用户对密钥库具有读取权限。
答案 2 :(得分:0)
要生成自签名证书,请按照here说明执行keytool -genkey。然后,如果您想在cer文件中使用证书,可以使用keytool -exportcert导出它 例如:
keytool -exportcert -keystore /path/to/keystore.jks -storepass <password> -alias <name> -file ./name.cer