我注册了一个域名,并希望为其设置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
我迷失在哪里离开这里。我按照这些说明操作:
并创建了一个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)
答案 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.crt
,Intermediate CA Certificate - COMODORSADomainValidationSecureServerCA.crt
和Your 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文件时创建的密钥库文件。如果更改密钥库不接受,请使用相同的密钥库。