【问题标题】:Java web service SSL on AWS EC2?AWS EC2 上的 Java Web 服务 SSL?
【发布时间】:2017-11-08 00:50:01
【问题描述】:

我正在使用 Dropwizard 开发我的服务,该服务最终将托管在 EC2 实例上。

目前亚马逊证书只能用于 Elastic Beanstalk 等服务。 您不能下载任何证书详细信息来签名或滚动您自己的密钥。

http://docs.aws.amazon.com/cli/latest/reference/acm/get-certificate.html

我尝试使用 java keytool 为可以使用该服务的公共域生成密钥库文件,但这会在浏览器上发出证书警告。

将 Elastic beanstalk 用于 Java 服务的解决方案是什么?

欢迎提出任何建议!

【问题讨论】:

  • 喜欢this?如果您在 EC2 上,您可以将 AWS 证书与负载均衡器一起使用,或者您可以在 Tomcat/Wildfly/Glassfish 前面使用 Apache 并获得“正常”证书。
  • @stdunbar 在这种情况下没有理由需要 Apache。
  • @MarkB - 只是偏好和历史问题。使用 Apache 设置 SSL 似乎比使用 java 服务器更容易,但您 100% 正确地认为它不是必需的。感谢您指出这一点。
  • Dropwizard 使用 Jetty 容器,但是我在 EC2 上的 docker 容器中运行它。

标签: java amazon-web-services ssl amazon-ec2


【解决方案1】:

将 Elastic beanstalk 用于 Java 服务的解决方案是什么?

这并不能以任何方式解决您的问题。这只会给您一个带有负载均衡器的 EC2 实例。如果需要,您可以自己设置负载均衡器。 Elastic Beanstalk 不提供超出您自己能力范围的特殊 SSL 证书支持。

我尝试使用 java keytool 为 该服务将在公共领域可用,但是这提供了一个 浏览器上的证书警告。

您生成了一个self-signed certificate,它将在浏览器中显示警告。如果要避免浏览器警告,您需要从实际的证书颁发机构获取 SSL 证书。

如果您不想将负载均衡器或 CloudFront 与 AWS ACM 证书一起使用,那么您需要从其他一些证书颁发机构获取有效的 SSL 证书并将其直接安装在您的 EC2 实例上。在不产生任何费用的情况下,最流行的方法是使用Let's Encrypt 证书。

【讨论】:

  • 谢谢,所以如果我采用负载均衡器的方式,我只需将 HTTP 与 Web 服务一起使用,而负载均衡器会处理 TLS?
  • 是的,如果您使用负载均衡器,您只需在 EC2 服务器上提供 HTTP,负载均衡器会处理 SSL/TLS 终止。您可以检查服务器端的 x-forwarded-proto 标头,以查看客户端是否通过 HTTP 或 HTTPS 连接到负载均衡器。如果您使用 Application Load Balancer,您还将获得一些不错的东西,例如 Web 套接字支持和 HTTP/2 支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
  • 2014-09-19
  • 2021-04-28
  • 1970-01-01
  • 2012-06-11
  • 2016-03-31
相关资源
最近更新 更多