Apache + SSL:不通过域的工作

我正在自己的Debian虚拟服务器上开发一个小型网站(Magento eshop)。 我在这个话题上并不是很先进。 服务器现在工作正常,最后剩下的问题是通过https协议进行SSL访问。

当我通过本地IP地址https://192.168.1.xxx访问服务器时,它工作。 但是当我通过https://www.mydomain.com访问它时,服务器不可用。 不过http:/ / 192.168.1.xxx和http:/ /www.mydomain.com运作良好。

可能是什么问题?

我的configuration文件:

ports.conf

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得到什么?
  2. 当你说它适用于https://192.168.1.xxx/

    • 我认为你至less会得到一个浏览器警告说证书名称不匹配。
    • 浏览器是否显示正确的证书,当你点击锁图标?

其他事情要检查:

  • 确保你没有在https的情况下configuration代理
  • /etc/apache2/ssl/edc.pem包含您的证书和私钥?

Wil Tan:谢谢你的回应。

  1. a)“经典”的Firefox错误信息 – 无法连接:Firefox无法build立到服务器www.mydomain.com的连接

  2. b)这个命令的结果:connect:连接拒绝connect:errno = 29

  3. c)这两个日志文件都是空的 – 不是很奇怪吗?

  4. 是的,浏览器显示这个证书的警告,因为它是自信的。 没关系,自信的证书对我来说已经足够了

确保你没有在https的情况下configuration代理

是的,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 

最好的祝福

卢卡斯

这是从当地单位进入的一般屏幕。

检查您的安全configuration的策略工具包和可能的防火墙限制的内部网或本地networking以外的地址。 本地解决策略可以覆盖任何操作系统中的宿主连接

检查您的本地网关检查通过端口433和HTTPS的安全exception,并看到正在协商的stream量。 除非你在做本地主机开发; 您可能需要检查请求的路由,看看它是否没有通过DHCP网关parsing。 (路由器…)

连接完成后检查文件日志,看看有没有其他的位,或者没有看到。 (例如,客户端导致错误;由于命名空间parsing困难,主机没有看到客户端)

检查您的VHost连接,检查目录权限和日志权限是否可以同等访问和(或拒绝,允许…)任何连接的安全性,他们似乎是最不同的。 也许尝试使用您的NameVirtualHost的文字名称。

检查以确保像本地移动电话或备用计算机(不是运行虚拟机的计算机)的连接可以看到该网站。 这有时会发生在VMWare,Citrix和其他networking适配器上。

(其他可能的冲突:是否有任何其他SSL服务器在运行,是否有任何FTP服务需要SSL连接来覆盖您的连接?)