我正在尝试使用刀创建和配置一个新的 EC2 实例,但一直遇到 SSL 错误:
$bundle exec knife ec2 server create
ERROR: Excon::Errors::SocketError: hostname "ec2.us-east-1b.amazonaws.com" does not match the server certificate (OpenSSL::SSL::SSLError)
我正在使用 ruby 2.0.0p0 从 mac (10.7) 运行它:
$ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin11.4.2]
我相当确定我正确编译了带有 openssl 支持的 ruby。require 'openssl'
从 irb运行返回 true。我正在使用通过自制软件安装的 OpenSSL 1.0.1e。
我也试过用 ruby 1.9.3-p194 跑刀。这具有相同的结果,但有用的错误消息略少:“错误:Excon::Errors::SocketError: hostname does not match the server certificate (OpenSSL::SSL::SSLError)”。这种差异是此拉取请求的结果,它改进了错误消息:https ://github.com/ruby/ruby/pull/122 。
curl 的以下输出可能是相关的:
$curl -v https://ec2.us-east-1b.amazonaws.com
* About to connect() to ec2.us-east-1b.amazonaws.com port 443 (#0)
* Trying 67.215.65.132... connected
* Connected to ec2.us-east-1b.amazonaws.com (67.215.65.132) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using AES256-SHA
* Server certificate:
* subject: serialNumber=UoFmxu6ta5ecJiIs4su2w-q-u8rxJ/d3; OU=GT55236522; OU=See www.rapidssl.com/resources/cps (c)12; OU=Domain Control Validated - RapidSSL(R); CN=*.opendns.com
* start date: 2012-08-23 10:11:50 GMT
* expire date: 2014-09-25 12:42:00 GMT
* subjectAltName does not match ec2.us-east-1b.amazonaws.com
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
* SSL peer certificate or SSH remote key was not OK
curl: (51) SSL peer certificate or SSH remote key was not OK
为了用刀成功创建 EC2 实例,我还需要配置其他东西吗?