如果我的问题标题看起来像其他人的问题/转发的问题,我很抱歉,但我已经发现同样的问题,并且没有找到解决方案。
我刚刚购买 GeoTrust QuickSSL 并且我想在我的 上设置 SSL Amazon EC2 Instance
。
这是001-mysite-ssl.conf
我保存的配置/etc/apache2/sites-available
,然后创建符号链接/etc/apache2/sites-enabled/
:
<IfModule mod_ssl.c>
<VirtualHost mysite.com:443>
ServerAdmin [email protected]
DocumentRoot /var/www/html
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error-mysite-ssl.log
CustomLog ${APACHE_LOG_DIR}/access-mysite-ssl.log combined
SSLEngine on
# MySite SSL & Key File
SSLCertificateFile "/usr/local/ssl/certs/mysite_com.crt"
SSLCertificateKeyFile "/usr/local/private/mysite.com.key"
# Certificate Authority (CA):
SSLCACertificateFile "/usr/local/certs/mysite_com.ca-bundle"
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLCipherSuite "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"
<Directory "/var/www/html">
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Require all granted
<FilesMatch "\.php$">
Require all granted
SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>
</Directory>
ServerSignature Off
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
# SSL Protocol Adjustments:
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
我在错误日志中看到了这个error-mysite-ssl.log
:
[Tue Aug 11 08:04:34.450708 2015] [ssl:warn] [pid 25086:tid 139975196800896] AH01909: ec2-57-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com:443:0 server certificate does NOT include an ID which matches the server name
我确信我将 SSL 证书、SSL 密钥和 CA 捆绑包放置在上述配置的路径上,并将 SSL 证书和 CA 捆绑包的权限设置为 640,将 SSL 密钥的权限设置为 400。即使我尝试将权限更改为 766,也不起作用。我确信我注册的通用名称 (CN) 完全正确mysite.com
(没有 www,只有 domain.TLD)。
当我尝试访问时,它给出结果:ERR_SSL_PROTOCOL_ERROR
在 Google Chrome 上。当我使用 Firefox 时,它给出如下错误Error code: ssl_error_rx_record_too_long
。
哦,我运行 Ubuntu 14.04 x64 和 Apache 作为我的网络服务器。
请针对我的问题提供一些想法/建议。
答案1
这Amazon EC2
与我的问题无关,因为我已经通过管理控制台允许端口 443,因此端口 443 可以从外部访问。
这个问题的解决方案是我忘记将我的实例配置为专用 IP,并且是的,只为单个域分配单个公共 IP。因此,正确的配置是:
<IfModule mod_ssl.c>
# I change mysite.com to *:443
<VirtualHost *:443>
....
</VirtualHost>
</IfModule>
目前,问题已经解决。如果您或其他人遇到与我相同的问题,请检查VirtualHost
您的域和 443 端口是否已打开。
如果你的实例配置允许单个 IP 用于多个域,你应该保留如下配置
<IfModule mod_ssl.c>
<VirtualHost domainA.com:443>
....
</VirtualHost>
</IfModule>
并且不要忘记在本地实例上设置/配置 DNS 以支持该域正确运行 SSL。