AWS Elastic Load Balancer的SSL证书配置错误

时间:2016-02-22 14:20:57

标签: amazon-web-services amazon-ec2 https ssl-certificate amazon-elb

我正在尝试配置SSL证书以通过AWS ELB支持HTTPS。我已完成所有配置:

1)在AWS ELB中配置GoDaddy SSL证书(包括证书链) 2)让ELB听众看起来像这样:
   客户---> HTTPS - > ELB端口443 - > HTTP --->服务器端口80
3)在GoDaddy中,创建了一个CNAME条目,如下所示:
   service.acme.com CNAME to aws-some-region.elb.amazonaws.com
4)如果我卷曲-kv https://service.acme.com/

*   Trying 52.6.xxx.xx...
* Connected to service.acme.com (52.6.xxx.xxx) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: pixxeen.com
* Server certificate: Go Daddy Secure Certificate Authority - G2
* Server certificate: Go Daddy Root Certificate Authority - G2
> GET / HTTP/1.1
> Host: service.acme.com
> User-Agent: curl/7.43.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Content-Type: text/html
< Date: Mon, 22 Feb 2016 14:06:08 GMT 
< ETag: W/"154-1455797592000"
< Last-Modified: Thu, 18 Feb 2016 12:13:12 GMT
< Server: Apache-Coyote/1.1
< Content-Length: 154
< Connection: keep-alive
< 
<html>
  <head>
    <title>Acme Service Application</title>
  </head>
  <body bgcolor=white>
      <p>Acme Service Application</p>
  </body>
* Connection #0 to host service.acme.com left intact

HTML是我为ELB部署的index.html页面,用于请求确认EC2实例已启动并正在运行。

然而,我遇到的问题是,如果任何移动客户端框架命中service.acme.com服务端点(okhttp或AFNetworking),我看到以下内容(这是一个okhttp调用):

02-22 08:52:10.513 2564-2564/com.acme W/System.err: javax.net.ssl.SSLPeerUnverifiedException: Hostname service.acme.com not verified:
02-22 08:52:10.513 2564-2564/com.acme W/System.err:     certificate: sha1/+axZF3Oyaatuoio5rsmNhUUhOZE=
02-22 08:52:10.513 2564-2564/com.acme W/System.err:     DN: CN=acme.com,OU=Domain Control Validated
02-22 08:52:10.513 2564-2564/com.acme W/System.err:     subjectAltNames: [acme.com, www.acme.com]

那么,有没有人知道我哪里出错了?

我在StackOverflow周围划了一下并且遇到了这篇帖子(我见过的最详细的一篇):Installing SSL cert on Amazon EC2 ELB它似乎确认了我所做的所有步骤。

2 个答案:

答案 0 :(得分:0)

您的证书不适用于 service.acme.com 域名。

仅对确切的主机 acme.com www.acme.com 有效。

如果省略-k的{​​{1}}(不安全)选项(由于故意忽略大多数SSL问题,这不是一个好的测试标记),您将清楚地看到此错误。

答案 1 :(得分:0)

附加到ELB的证书将根据cname而不是ELB名称本身进行验证。如果您已将证书x.y.z.com附加到ELB,则您的cname应该匹配x.y.z.com而不是ELB cname。

如果您具有通配符证书* .x.y.z.com,则您的cname可以是任何东西。