我在 CentOS 6.7 和 Apache/2.2.15 上设置了 Comodo SSL,我们在服务器上运行 CakePHP 应用程序。当我访问 http/domain 时,它可以正常工作,但当我访问 httpS/domain 时,它显示 404 Not Found(即使我看到绿色的锁定图标和 https)。
这是我的 etc/httpd/conf/httpd.conf 文件的一部分:
Include conf.d/*.conf
Listen 80
<VirtualHost *:80>
ServerAdmin info@domain
DocumentRoot /var/www/vhosts/domain/httpdocs/app/webroot/
ServerName domain
<Directory /var/www/vhosts/domain/httpdocs>
Allowoverride All
</Directory>
</VirtualHost>
并且 /etc/httpd/conf.d/ssl.conf 包含:
Listen 443
<VirtualHost *:443>
DocumentRoot /var/www/vhosts/domain/httpdocs/app/webroot/
ServerName domain
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/domain.crt
SSLCertificateKeyFile /etc/httpd/ssl/private.key
SSLCertificateChainFile /etc/httpd/ssl/domain.ca-bundle
</VirtualHost>
我已经多次停止和启动 httpd,并且尝试了 httpS/domain:80,但出现错误:此网页不可用 (ERR_CONNECTION_CLOSED)。
DocumentRoot 可以相同吗?如果不相同,那么我该如何处理,因为将我们的应用程序代码复制/粘贴到另一个文件夹中是不可行的。
对我做错的事情有什么想法吗?
答案1
我改成<VirtualHost *:443>
了<VirtualHost domain.com:443>
并且它有效。
答案2
看看这个:http://nginx.org/en/docs/http/ngx_http_ssl_module.html#example
server {
listen 443 ssl;
keepalive_timeout 70;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
ssl_certificate /usr/local/nginx/conf/cert.pem;
ssl_certificate_key /usr/local/nginx/conf/cert.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
}
尤其:
listen 443 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;