【问题标题】:Obtaining an SSL cert for a domain hosted zone in AWS Route 53为 AWS Route 53 中的域托管区域获取 SSL 证书
【发布时间】:2023-03-10 20:03:02
【问题描述】:

这个问题的标题很拗口,但我正在尝试配置我在 AWS 上为我的域购买的 Go Daddy SSL 证书。我从 AWS 购买了域 myapp.com(不是真名),然后我将 myapp.myapp.com 配置为 Route 53 中的记录集以指向一个 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. 一路上的健全性检查,其他有类似问题的人也可以使用

这是Go Daddy返回给我的三个证书:

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

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

【问题讨论】:

  • 您的下一步应该是在浏览器中打开 SSL 证书详细信息,并准确查看 为什么它认为 SSL 证书无效。
  • Tomcat前面有Apache吗?虽然稍微复杂一点,但这意味着 Tomcat 不会以 root 身份运行,并且您不必经历 Java 密钥库之舞。
  • tomcat日志中是否有启动错误?如果您可以按照@MarkB 的建议在 Chrome 中看到证书详细信息,那么您的服务器配置正确,问题可能出在 Chrome 上。例如,它可能决定您的 CA 不可信。
  • 您是否在其他浏览器中尝试过?我只是在 Chrome 中无缘无故地收到了一个证书警告,它在 Firefox 中有效。
  • @Tim,这是一个 Spring Boot 应用吗?

标签: amazon-web-services ssl dns


【解决方案1】:

要为 Spring Boot 应用执行此操作,请执行以下操作:

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 和正确的密钥库密码。

看看Connector配置tomcat配置别名、keystore密码、keystore等

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

【讨论】:

  • 你能给我前两个命令的参考吗?第二个我不认识,第一个看起来有点眼熟。
  • 另外,您知道我使用的是 Go Daddy SSL 证书,不是自签名证书吗?我最终会将 Tomcat 与 Android 应用程序一起使用,因此证书必须来自权威机构。
  • 是的,通常 CA 发送 PEM 编码,第一个命令是将 PEM 转换为 PKCS,查看openssl.org/docs/manmaster/man1/pkcs12.html 了解详细信息。
  • 所以你是说我不能只导入Go Daddy发给我的.pem文件,我需要先使用openssl来转换它?中间证书和根证书呢?我也需要转换这些吗?顺便说一句,谢谢你的帮助。
  • 第二个命令是keytool,将pkcs文件导入到tomcat可以使用的JKS存储中。见:docs.oracle.com/javase/8/docs/technotes/tools/windows/…
猜你喜欢
  • 2023-03-26
  • 2021-08-22
  • 2020-03-29
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 2021-12-13
相关资源
最近更新 更多