我正在自己的 Debian 虚拟服务器上开发一个小型网站(Magento eshop)。我在这方面不是很熟悉。服务器现在运行良好,剩下的最后一个问题是通过 https 协议进行 SSL 访问。
当我通过本地 IP 地址访问服务器时https://192.168.1.xxx,它可以工作。但是当我通过https://www.mydomain.com,服务器不可用。但是 http://192.168.1.xxx 和 http://www.mydomain.com 可以正常工作。
可能存在什么问题?
我的配置文件:
端口配置文件
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
已启用站点/magento
NameVirtualHost 192.168.1.124:80
<VirtualHost 192.168.1.124:80>
ServerName www.mydomain.de
ServerAdmin [email protected]
DocumentRoot /var/www/magento
<Directory /var/www/magento/>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
站点启用/magento_ssl
NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName www.mydomain.de
ServerAlias *.mydomain.de
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/edc.pem
DocumentRoot /var/www/magento
<Directory /var/www/magento>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
LogLevel warn
ErrorLog /var/log/apache2/ssl-error.log
CustomLog /var/log/apache2/ssl-access.log combined
</VirtualHost>
答案1
为了帮助诊断,让我问几个问题。
当您说“服务器不可用”时:
- 浏览器上具体的错误信息是什么?
- 尝试运行
openssl s_client -connect www.mydomain.de:443
(如果你不是在 unix 机器上,请在你的 vps 上尝试) - 你在
/var/log/apache2/ssl-access.log
或 里得到什么了/var/log/apache2/ssl-error.log
吗?
当你说它适用于https://192.168.1.xxx/:
- 我认为你至少会收到一个浏览器警告,提示证书名称不匹配。
- 当您单击锁定图标时,浏览器是否显示正确的证书?
其他需要检查的事项:
- 确保在 https 情况下没有配置代理
- 是否
/etc/apache2/ssl/edc.pem
也包含您的证书和私钥?
答案2
Wil Tan:谢谢您的回复。
a) “经典” Firefox 错误消息 - 无法连接:Firefox 无法与服务器 www.mydomain.com 建立连接
b)该命令的结果:connect:连接被拒绝connect:errno=29
c) 这两个日志文件都是空的——这不是很奇怪吗?
是的,浏览器会显示有关此证书的警告,因为它是自信任证书。没关系,自信任证书对我来说已经足够了
确保在 https 情况下没有配置代理
是的,https 没有代理
/etc/apache2/ssl/edc.pem 是否也包含您的证书和私钥?
我尝试了新方法来制作证书-http://grahamc.com/blog/openssl-madness-how-to-create-keys-certificate-signing-requests-authorities-and-pem-files/ 所以现在我有 mydomain.com.crt、mydomain.com.key、mydomain.com.pem 和 mydomain.com.csr 文件。
新的 magento_ssl 内容(更改的部分):
SSLEngine On
SSLCertificateKeyFile ssl/mydomain.com.key
SSLCertificateFile ssl/mydomain.com.crt
此致
卢卡斯
答案3
这是一个从本地单元内到外的通用屏幕。
检查策略工具包的安全配置以及内部网或本地网络之外地址的可能的防火墙限制。本地解析策略可以覆盖任何操作系统中的托管连接。
检查本地网关以检查端口 433 和 HTTPS 上的安全异常,并查看流量是否正在正确协商。除非您只进行本地主机开发;否则您可能需要检查请求的路由,查看它是否未通过 DHCP 网关解析。(路由器……)
建立连接后检查文件日志,查看是否有任何其他您看到或没有看到的位。(例如,客户端导致错误;由于命名空间解析困难,主机没有看到客户端)
检查您的 VHosts 连接,检查目录权限和日志权限是否同样可访问和/或安全(拒绝、允许……)任一连接,它们似乎是最不同的。也许尝试为您的 NameVirtualHost 使用文字名称。
检查以确保本地移动电话或备用计算机(而不是运行虚拟机的计算机)等连接可以看到该网站。这有时发生在 VMWare、Citrix 和/或其他网络适配器上。
(其他可能的冲突:是否有其他 SSL 服务器正在运行,是否有任何 FTP 服务需要 SSL 连接来覆盖您的连接?)