之前尝试过询问但是并不太好,所以继续尝试两个
我试图在RHEL下的tomcat 7服务器上运行SSL。 Sever在HTTP下工作正常但是当我尝试使用HTTPS访问它时,我收到此错误。
进一步研究,chrome告诉我这个
进行了一些研究。将证书添加到/ etc / pki / ca-trust / source / anchors,update-ca-trust,仍然是同样的问题。尝试从头开始重建密钥库并更改它们的导入顺序,但仍然没有。
Heres目前在我的密钥库中:
root, Dec 29, 2017, trustedCertEntry,
tomcat, Dec 29, 2017, PrivateKeyEntry,
intermed, Dec 29, 2017, trustedCertEntry,
crm2.mydomain.org, Jan 3, 2018, trustedCertEntry,
以及我的server.xml中的内容
<Connector
port="443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="/opt/apache-tomcat-7.0.82/conf/store" keystorePass=[pass]
clientAuth="false" sslProtocol="TLS"/>
其他信息:
从Godaddy获得的Certs。 使用的安装指南here
godddy ssl checker说我错过了中间证书
Tomcat版本7
RHEL 7.4
java 1.8
感谢任何帮助
答案 0 :(得分:0)
很难确定,但您似乎没有正确遵循您引用的说明。您的密钥库显示一个trustedCertEntry,其别名看起来像您的域名的编辑;这表明您已将服务器证书导入该条目,而不是名为&#39; tomcat&#39;的privateKeyEntry。
从您关联的页面引用,强调添加:
在Tomcat中安装SSL [它们明确表示SSL / TLS服务器证书]
- 运行以下命令安装根证书:
keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file [根证书的名称]- 运行以下命令安装中间证书:
keytool -import -alias intermed -keystore tomcat.keystore -trustcacerts -file [中间证书的名称]- 运行以下命令,将颁发的[为您的服务器]证书安装到密钥库中:
醇>
keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file [证书名称]
在第3步,别名是&#39; tomcat&#39;这是您在过程前面用于-genkey [pair]和-certreq步骤的别名,而不是域的名称,通常也是包含服务器/ EE证书的文件的名称。
要验证正确的程序,keytool对命令1和2的响应应为
Certificate was added to keystore
但是对命令3的响应应该是DIFFFERENT:
Certificate reply was installed in keystore
但是,如果您从头开始重建[t]密钥库&#39;并且包括在获得证书后生成新的密钥对,证书现在毫无价值且无法使用,此过程将无效;它会改为说
Public keys in reply and keystore don't match
服务器使用的证书必须与私钥匹配,因此这意味着您必须遵循该页面中指定的顺序以及数十亿其他位置:生成密钥对,然后生成CSR 密钥对,然后让CA从颁发证书 CSR,然后导入 < / em> cert进入相同的密钥库和别名,其链接证书可以在回复中使用(如某些CA所做的那样,通常使用&#39; p7b&#39;格式)或信任库中的其他地方(如GoDaddy显然那样)。
有效地将Import CA signed certificates to JKS用于其他CA.