在AWS Route 53中获取域托管区域的SSL证书

时间:2018-05-03 16:15:13

标签: amazon-web-services ssl dns

问题的标题是满口的,但我正在尝试配置我在AWS上为我的域购买的Go Daddy SSL证书。我从AWS购买了域myapp.com(不是真实姓名),然后我将myapp.myapp.com配置为Route 53中的记录集,指向EC2实例,而EC2实例又运行实际的Tomcat服务器我希望用户会打。换句话说,这是用于访问应用程序/网站的网站,我已经确认它可以使用并且可以访问。

我从Go Daddy购买了myapp.myapp.com的SSL证书。我按照说明将根证书,中间证书和已颁发证书(总共3个)导入我的Java密钥库。然后,我将Tomcat server.xml配置为使用此密钥库。我不确定我是否正确地做了这个,或者按照正确的顺序,如果这很重要的话。无论如何,当我试图点击地址时

https://myapp.myapp.com:8443/

我在Chrome上收到以下错误:

Your connection is not private
NET::ERR_CERT_AUTHORITY_INVALID

有人能说清楚我在这里做错了什么吗? Go Daddy的客户支持虽然免费,但不提供此级别的技术支持。我可以使用AWS,但他们倾向于收取企业费率。

理想的答案至少包括以下步骤:

  1. 如何将Go Daddy证书导入我的Java keystone
  2. 如何正确配置Tomcat server.xml以使用密钥库
  3. 一路上进行健全检查,其他有类似问题的人可以使用
  4. 以下是Go Daddy回复给我的三个证书:

    c4c170b79c58acc3.crt  (root?)
    gd_bundle-g2-g1.crt   (intermediate?)
    gdig2.crt.pem         (primary/issued?)
    

    我不确定这些证书中的哪一个是根证书,中间证书和已颁发证书,但this SO question会像我上面那样标记它们。

1 个答案:

答案 0 :(得分:0)

要为春季启动应用执行此操作,请执行以下操作:

sudo openssl pkcs12 -export -out cs.pkcs12 -inkey /path/to/domain.key -in /path/to/domain.cer -certfile /path/to/domain.ca-bundle -name server -passout somestorepass

sudo keytool -v -importkeystore -srckeystore cs.pkcs12 -srcstoretype PKCS12  -destkeystore keystore.jks -deststoretype JKS  -srcstorepass somestorepass -deststorepass somestorepass
application.properties

中的

server.ssl.enabled=true
server.ssl.key-alias=server
server.ssl.key-password=somestorepass
server.ssl.key-store-type=JKS

如果你有tomcat,前两个命令保持不变,你只需要配置tomcat即可使用正确的alias和正确的密钥存储密码。

查看tomcat的Connector配置以配置别名,密钥库密码,密钥库等。

编辑: 建议您在完成后删除中间文件(而不是JKS)。