我以前从未设置过SSL / TLS,它不能正常工作,我不知道如何调试它。初始的谷歌搜索没有出现选择。这就是我所做的:
使用openSSL生成私钥和CSR
openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
让我的csr签名并从startssl.com下载证书(第一年免费)
将root,intermediate和my domain cert安装到.keystore中,如:
keytool -import -trustcacerts -alias root -file root.crt -keystore .keystore
keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore .keystore
keytool -import -trustcacerts -alias tomcat -file mydomain.crt -keystore .keystore
添加了tomcat连接器(如下所示,但我必须删除xml角度括号或堆栈溢出才会显示它)
连接器SSLEnabled =" true" acceptCount =" 100" clientAuth ="假" disableUploadTimeout ="真" enableLookups ="假" maxThreads =" 25" 端口=" 8443" keystoreFile =" /home/ec2-user/.keystore" keystorePass ="密码"协议=" org.apache.coyote.http11.Http11NioProtocol"方案=" HTTPS"固定="真" sslProtocol =" TLS"
退回tomcat,服务器成功启动并提供http请求
java.io.IOException:别名tomcat不识别密钥 条目
我被建议通过将根连接到中间证书然后使用下面的命令来创建.pkcs12文件
openssl pkcs12 -in mydomain.crt -certfile CA.crt -chain -inkey privateKey.key -out tomcat.p12
不幸的是,这导致了以下错误:
4294956672:错误:0D0680A8:asn1编码例程:ASN1_CHECK_TLEN:错误 标签:tasn_dec.c:1201:4294956672:错误:0D07803A:asn1编码 例程:ASN1_ITEM_EX_D2I:嵌套asn1错误:tasn_dec.c:374:类型 = PKCS12
然后我尝试将私钥,域,中间和根证书连接到一个.pem文件中,然后将其转换为x509
然后我尝试在jks&中使用x509证书。 tomcat但我得到了同样的错误
java.io.IOException:别名tomcat不识别密钥条目
通过谷歌阅读这一点让我更加困惑 - 我阅读了这些非常自信的教程如何做到这一点,他们似乎已经错了。我在哪里可以找到有关如何设置的准确指南。
答案 0 :(得分:1)
cat 2_host.domain.net.crt 1_Intermediate.crt CA.crt> fullchain.crt
openssl pkcs12 -export -out tomcat.p12 -inkey ../ssh.key -in fullchain.crt
keytool -list -keystore tomcat.p12 -storetype PKCS12
keytool -list -keystore tomcat.p12 -storetype PKCS12 -v
keytool -importkeystore -srckeystore tomcat.p12 -srcstoretype PKCS12 -ssccalias 1 -destkeystore tomcat.jks -deststoretype JKS -destalias tomcat
$ kill 1234
configtest.sh
答案 1 :(得分:0)
您导入的条目是证书 - 为此,您需要拥有私钥。
要正确设置它,您需要利用openssl的PKCS12功能来创建PKCS#12格式存档,然后将THAT导入到包含PKCS#12内容的JKS文件(.keystore)中。
您可能需要首先连接mydomain.crt + intermediate.crt。
修改强>
希望更清楚地说明这一点:
完成后,您可以使用keytool验证
keytool -list -keystore tomcat.p12 -storetype PKCS12
如果你认为它是privateKeyEntry - 你大部分都在那里。
keytool -list -keystore tomcat.p12 -storetype PKCS12 -v
将列出条目证书和任何链信息。如果它吐出你的证书+链(应该是一个别名中的3个条目),你可以将它导入JKS文件。
keytool -importkeystore -srckeystore tomcat.p12 -srcstoretype PKCS12 -ssccalias 1 -destkeystore tomcat.jks -deststoretype JKS -destalias tomcat
按照提示操作,您应该完成。
编辑2
证书的顺序很重要 - cat mydomain.crt intermediate.crt root.crt>全chain.crt
以下内容可能有所帮助 openssl pkcs12 -certfile full-chain.crt -chain -inkey privateKey.key -out tomcat.p12