Java 带有Cloudflare的Tomcat/TomEE SSL配置

Java 带有Cloudflare的Tomcat/TomEE SSL配置,java,ssl,tomcat,cloudflare,apache-tomee,Java,Ssl,Tomcat,Cloudflare,Apache Tomee,我在使用cloudflare提供的SSL配置tomee的正确方法方面遇到了问题。 第一次这样做,情况如下: 1) 首先,我创建密钥库文件: keytool -keysize 2048 -genkey -alias tomee -keyalg RSA -keystore tomee.keystore 2) 然后导入生成的密钥库: keytool -importkeystore -srckeystore tomee.keystore -destkeystore tomee.keystore -de

我在使用cloudflare提供的SSL配置tomee的正确方法方面遇到了问题。 第一次这样做,情况如下:

1) 首先,我创建密钥库文件:

keytool -keysize 2048 -genkey -alias tomee -keyalg RSA -keystore tomee.keystore
2) 然后导入生成的密钥库:

keytool -importkeystore -srckeystore tomee.keystore -destkeystore tomee.keystore -deststoretype pkcs12
3) 导入后,我创建CSR文件以发出证书请求:

keytool -certreq -keyalg RSA -alias tomee -file FQDN.csr -keystore tomee.keystore
4) 然后我进入cloudflare>ssl/tls>origin server>create certificate>选择“我有自己的私钥和csr”>然后我将FDQN.csr内容粘贴到文本区域>单击下一步>最后我收到了作为FQDN.PEM保存在我的服务器上的PEM内容

5) 将FQDN.pem作为受信任证书导入密钥库:

keytool -import -alias tomee -keystore tomee.keystore -trustcacerts -file FQDN.pem
6) 将tomee.keystore文件复制到tomee conf目录中

7) 最后,我为tomee配置server.xml,如下所示:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" 
            compression="on"  scheme="https" secure="true" keystoreFile="conf/tomee.keystore"
            keystorePass="myPasswordHere"
            SSLVerifyClient="none" SSLProtocol="TLSv1.2"
/>

8) 这里我遇到了一个问题:重新启动tomcat并通过端口8443发出请求。它可以工作,但证书显示为无效。查看证书时,我得到这样的信息:“此CA根证书不受信任,因为它不在受信任的根证书颁发机构存储中。”

如我所见,通过文档,我可能需要为提供的文件添加其他配置。我理解正确吗?还是我遗漏了什么? 如果是的话,这些配置会是什么样子?我是否应该在server.xml文件中以演示的格式执行类似的操作,比如:(或者这是一件完全不同的事情?)


有趣的是,网上没有那么多的信息,我已经努力理解这个问题好几天了。 任何关于这方面的信息都会有所帮助

对发布类似主题的人的赞誉

设法解决了这个问题。 对任何感兴趣的人来说,有两个问题:

1) 在对tomcat/tomee Web服务器执行步骤5)之前,您需要添加一个受信任的根证书,并使用cloudflare提供的密钥

然后将别名rsa添加到密钥库中,如图5所示

2) 另一个问题是cloudflare DNS设置上的CN配置被忽略,所以请检查您的配置


希望这对某人有所帮助:)

您好,我遵循了您的所有步骤,但由于某些原因我无法访问ssl,一旦我添加jks cloud flare将无法访问应用程序,出现520错误,您能提供帮助吗?您好,根据您告诉我的,我认为您遇到的问题可能与ssl无关。还在体验吗?@niu你好,谢谢你提供的文档,这是一个很大的帮助。但我被这个错误难住了。我已成功地将证书上载到server.xml,并显示在我的网站上。但它无效,并出现错误“此CA根证书不受信任,因为它不在受信任的根证书颁发机构存储中。”我已将origin\u CA\u rsa\u Root.pem添加到密钥存储中。知道怎么解决吗?非常感谢。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
           maxThreads="150" SSLEnabled="true" >
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" xpoweredBy="false" server="Apache TomEE" />
    <SSLHostConfig>
        <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                     certificateFile="conf/localhost-rsa-cert.pem"
                     certificateChainFile="conf/localhost-rsa-chain.pem"
                     type="RSA" />
    </SSLHostConfig>
</Connector>
keytool -import -alias root -keystore tomee.keystore -trustcacerts -file origin_ca_rsa_root.pem