无法通过https在aws ec2上运行应用程序,但http可以工作

无法通过https在aws ec2上运行应用程序,但http可以工作,http,curl,amazon-ec2,https,Http,Curl,Amazon Ec2,Https,我有一个ec2实例,它的公共dns(ipv4)是ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com。我在ec2上运行java应用程序,可以通过curl和http从本地笔记本电脑获取数据: $ curl http://ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com:8080/users/1/items/2759 -verbose * Trying xx.xxx.xx.xx:8080... * TCP

我有一个ec2实例,它的公共dns(ipv4)是ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com。我在ec2上运行java应用程序,可以通过curl和http从本地笔记本电脑获取数据:

$ curl http://ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com:8080/users/1/items/2759 -verbose
*   Trying xx.xxx.xx.xx:8080...
* TCP_NODELAY set
* Connected to ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com (xx.xxx.xx.xx) port 8080 (#0)
> GET /users/1/items/2759 HTTP/1.1
> Host: ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com:8080
> User-Agent: curl/7.65.3
> Accept: */*
> Referer: rbose
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Thu, 13 Feb 2020 06:34:50 GMT
<
< ...expected data...
我的ec2安全组入站规则:


为什么我不能通过https访问我的java应用程序端点?我该怎么做呢?

那么,您的java服务器是否配置为通过https提供流量服务?(1.在端口8080上提供https是非常罕见的,2)不能在同一端口上同时使用http和https)不,我的java服务器不是。你是对的,这是非常罕见的。看来我最好把服务器放在nginx后面,让nginx服务器处理外部https流量。是的,大多数人都这么做
curl https://ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com:8080/users/1/items/2759 -verbose
*   Trying xx.xxx.xx.xx:8080...
* TCP_NODELAY set
* Connected to ec2-xx-xxx-xx-xx.us-west-2.compute.amazonaws.com (xx.xxx.xx.xx) port 8080 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /usr/local/anaconda3/ssl/cacert.pem
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number
* Closing connection 0
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number