我很抱歉,如果我的问题标题看起来像别人/转发,但我已经find相同的问题,并没有find解决办法。
我只是购买GeoTrust QuickSSL,我想在我的Amazon EC2 Instance上设置SSL。
这里是我的configuration001-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绑定放在上面configuration的path上,并将SSL证书和CA绑定的权限设置为640,将SSL密钥设置为400。 即使我试图将权限更改为766,也不起作用。 我相信我注册通用名称(CN)正如mysite.com (没有www,只是domain.TLD)。
当我尝试访问时,它给了我结果:谷歌浏览器上的ERR_SSL_PROTOCOL_ERROR 。 当我使用Firefox,它给了我这样的Error code: ssl_error_rx_record_too_long 。
噢,我运行Ubuntu 14.04 x64和Apache作为我的networking服务器。
请给我一些想法/build议给我的问题。
Amazon EC2与我的问题无关,因为我已经通过pipe理控制台允许端口443,所以端口443可以从外部访问。
这个问题的解决scheme是我忘记我的实例configuration为专用IP,并且是只有单个公共IP分配给此实例的单个域。 所以,正确的configuration是:
<IfModule mod_ssl.c> # I change mysite.com to *:443 <VirtualHost *:443> .... </VirtualHost> </IfModule>
这是目前解决问题的方法。 如果您或其他人与我有同样的问题,请检查VirtualHost与您的域名和443端口打开。
如果您的实例configuration允许多个域的单个IP,您应该保持这样的configuration
<IfModule mod_ssl.c> <VirtualHost domainA.com:443> .... </VirtualHost> </IfModule>
并且不要忘记在本地实例上设置/configurationDNS以支持该域正确运行SSL。