我正在尝试在我的一个 EC2 实例上设置 https。我已经这样做了很多次,但由于某种原因,在这种情况下,它拒绝工作。
问题
当我通过本地 ip 连接到域时,https 工作正常。当我通过公共 ip 连接到域时,https 不起作用,浏览器响应为“ERR CONNECTION REFUSED”
有时我重新加载时,您可以看到它接受了 https,然后立即阻止它,几乎就像有防火墙规则一样,但没有。
正常 http 100% 本地和公共工作。
在这个阶段,我不会通过亚马逊上的安全组阻止任何端口。我对 ip 表没有任何规则,并且我禁用了 ufw。
我已经为 apache 启用了 SSL,并且测试密钥在本地可以正常工作。
这是 sudo netstat -tlnp 的输出
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 937/sshd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1060/mysqld
tcp6 0 0 :::22 :::* LISTEN 937/sshd
tcp6 0 0 :::443 :::* LISTEN 2798/apache2
tcp6 0 0 :::80 :::* LISTEN 2798/apache2
这是我的 /etc/apache2/ports.conf 文件:
Listen 80
Listen 443
我已经启用了 default-ssl 站点,没有任何错误。
这是我的 /etc/hosts 文件:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
我也尝试使用 0.0.0.0 而不是 127.0.0.0 并且它什么也没做。
这是我网站的 apache conf 文件(出于安全目的,我用“mysite.com”替换了我的真实站点名称):
<VirtualHost *:80>
DocumentRoot /var/www/html/mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
<Directory /var/www/html/mysite.com>
AllowOverride All
RewriteEngine On
Require all granted
Options -Indexes +FollowSymLinks
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html/mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
SSLEngine on
SSLCertificateFile /usr/local/ssl/public.crt
SSLCertificateKeyFile /usr/local/ssl/private/private.key
SSLCACertificateFile /usr/local/ssl/intermediate.crt
</VirtualHost>
这个完全相同的 conf 文件正在另一个实例上工作,这告诉我问题不在于这个文件。
我错过了什么?请提供任何帮助。提前致谢
编辑
这是我为 apache 加载的模块:
sudo apache2ctl -M
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
php5_module (shared)
rewrite_module (shared)
setenvif_module (shared)
socache_shmcb_module (shared)
ssl_module (shared)
status_module (shared)
wsgi_module (shared)
编辑 2
一些有趣的 apache error.log 条目,而不是在我重新启动服务时,只是在几分钟前随机(这可能是导致问题的原因吗?):
[Wed Feb 17 21:04:48.478106 2016] [ssl:warn] [pid 3629] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Wed Feb 17 21:04:48.507277 2016] [ssl:warn] [pid 3630] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Wed Feb 17 21:04:48.507324 2016] [:warn] [pid 3630] mod_wsgi: Compiled for Python/3.4.0.
[Wed Feb 17 21:04:48.507329 2016] [:warn] [pid 3630] mod_wsgi: Runtime using Python/3.4.3.
[Wed Feb 17 21:04:48.509502 2016] [mpm_prefork:notice] [pid 3630] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.14 OpenSSL/1.0.1f mod_wsgi/3.4 Python/3.4.3 configured -- resuming normal operations
[Wed Feb 17 21:04:48.509517 2016] [core:notice] [pid 3630] AH00094: Command line: '/usr/sbin/apache2'
我禁用了 wsgi 模块只是为了确保这不是我的问题,然后重新启动了 apache 服务,仍然没有运气,同样的问题。
编辑 3
我正在倾倒我的一些 phpinfo() 以显示更多信息。SSL 设置为是。我不知道是怎么回事 :(
编辑 4
我认为我可能需要在负载均衡器上添加 SSL 证书才能使任何这些都正常工作。我现在正在尝试,会让大家知道...