Jboss7上的COMODO SSL证书

时间:2014-07-04 16:46:19

标签: java ssl jboss7.x

我注册了一个域名,并希望为其设置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)

3 个答案:

答案 0 :(得分:4)

我终于设法让安装正确!以下是您的工作方式:

使用此命令将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>

你应该好好去!

答案 1 :(得分:0)

My domain provider offered me to get a SSL certificate from COMODO...
...
Any advice?

不要为证书买单。您可以从Startcom获得免费的1级证书。 Class 1适用于服务器身份验证没有通配符域。如果您需要扩展验证证书或威尔卡证书,那么您必须购买2级或更高级别的证书。

此外,虽然Startcom免费颁发证书,但他们会收取撤销费用,因为这是成本所在。


  

我迷失在哪里离开这里......

Intermediate CA Certificate - COMODORSAAddTrustCA.crtIntermediate CA Certificate - COMODORSADomainValidationSecureServerCA.crtYour PositiveSSL Certificate - mydomain.crt转换为PEM文件。 PEM是以----- BEGIN CERTIFICATE -----开头并以----- END CERTIFICATE -----结束的。

然后,将三个PEM文件连接成一个文件。该文件中将包含三个证书。将其称为mydomain-chain.pem,然后将其加载到您的服务器中。同时将myserver.key加载到您的服务器中。

不要对Root CA Certificate - AddTrustExternalCARoot.crt做任何事情。客户端必须将其用作根。没有{use | need}在ServerHello中将其发送给客户。

您可以使用以下方法测试您的设置。注意客户端如何使用root:

openssl s_client -connect myserver:443 -CAfile AddTrustExternalCARoot.crt

该命令应以Verify (0) OK或类似名称结束。

答案 2 :(得分:0)

由于密钥库格式无效,无法使用路径../standalone/configuration/mydomain-chain.pem加载密钥库类型JKS:这意味着您的密钥库无效。不要创建新的密钥库文件使用您向其提交csr文件时创建的密钥库文件。如果更改密钥库不接受,请使用相同的密钥库。