我注册了一个域,并想为其设置SSL加密。我的域名提供商要求我从COMODO获得SSL证书。我使用openSSL生成了一个密钥和一个csr文件:

openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr

该命令生成了一个私钥myserver.key和csr文件。我将csr的内容上传到了comodo,经过验证后,他们向我发送了以下文件:
Root CA Certificate - AddTrustExternalCARoot.crt
Intermediate CA Certificate - COMODORSAAddTrustCA.crt
Intermediate CA Certificate - COMODORSADomainValidationSecureServerCA.crt
Your PositiveSSL Certificate - mydomain.crt

我不知道该从哪里去。我遵循以下指示:

https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/638/0/certificate-installation-java-based-web-servers-tomcat-using-keytool

并创建了一个domain.keystore文件,但是我不确定这是否正确。现在,我在Jboss中的配置如下所示:
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
    <ssl name="mydomain" password="*****" protocol="TLSv1" certificate-key-file="../standalone/configuration/domain.keystore"/>
</connector>

但这似乎不起作用。服务器日志中没有错误,页面只是超时了。如果我使用http,它可以正常工作。有什么建议吗?

编辑:

我采用了另一种方法,通过这种方式生成了密钥库:
keytool -genkey -alias domain -keyalg RSA -keysize 2048 -keystore domain.keystore

然后我将新的csr信息上传到了comodo,并拿回了三个.crt证书。我使用以下命令将它们导入密钥库:
keytool -import -trustcacerts -alias domain -file domain.crt -keystore domain.keystore

然后我以这种方式在standalone.xml中使用了密钥库:
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
    <ssl name="domain-ssl" key-alias="domain" password="******" certificate-key-file="../standalone/configuration/domain.keystore" protocol="TLSv1"/>
</connector>

服务器启动,但是当我尝试连接到服务器时,我的浏览器显示该连接不受信任:
domain uses an invalid security certificate.
The certificate is not trusted because it is self-signed.
(Error code: sec_error_ca_cert_invalid)

最佳答案

我终于设法安装正确!这是您的操作方式:

使用以下命令将COMODO证书安装到密钥库中:

keytool -import -trustcacerts -alias <filename> -file <filename>.crt -keystore domain.keystore

按以下顺序:
» Root: AddTrustExternalCARoot.crt
» Intermediate 1: COMODOAddTrustServerCA.crt
» Intermediate 2: COMODOExtendedValidationSecureServerCA.crt

然后安装您的域证书:
keytool -import -trustcacerts -alias mykey -file yourDomainName.crt -keystore domain.keystore

您应该使用用于生成密钥库的别名而不是mykey。如果正确执行所有操作,则应获得以下输出:
Certificate reply was installed in keystore

别的意思是,您可能没有使用正确的别名。您需要做的最后一件事是像这样修改standalone.xml:
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
    <ssl name="<domain>-ssl" key-alias="<domain>" password="******" certificate-key-file="../standalone/configuration/<domain>.keystore"/>
</connector>

而且您应该很好走!

09-30 20:12