所以这里是我目前的configuration:
<VirtualHost *:443> DocumentRoot "/var/www/keypad" ServerName keypad.io SSLOptions +StrictRequire <Directory /> SSLRequireSSL </Directory> SSLProtocol -all +TLSv1 SSLEngine on SSLCertificateFile /cert/cert.crt SSLCertificateKeyFile /cert/key.key SSLCACertificateFile /cert/inter.crt </VirtualHost> <VirtualHost *:80> ServerName keypad.io ServerAlias www.keypad.io DocumentRoot /var/www/keypad Redirect permanent / https://keypad.io/ </VirtualHost>
其结果是能够访问该网站在http://和https://
由于某种原因,我最终得到了一个无限的redirect循环,在地址栏中inputhttps://。
如果我完全删除*:80主机,http://退出工作,并且https://忽略DocumentRoot属性并给我apache欢迎页面。 无论我在*:443主机模块中做什么,我都会得到一个到欢迎页面的encryption连接。
我希望同时使用http://和https://将客户端指向我的站点的SSLencryption版本。 我的apache2.conf是默认的。 我没有做到这一点。
输出apache -version
Server version: Apache/2.4.7 (Ubuntu) Server built: Jul 22 2014 14:36:38
有什么想法吗?
编辑:我添加额外的'/'(并删除SSLv3build议),仍然有一个无限的redirect循环。 任何帮助是绝对赞赏。
您的Redirect指令中缺less斜线:
<VirtualHost *:443> DocumentRoot "/var/www/keypad" ServerName keypad.io SSLOptions +StrictRequire <Directory /> SSLRequireSSL </Directory> SSLProtocol -all +TLSv1 +SSLv3 SSLEngine on SSLCertificateFile /cert/cert.crt SSLCertificateKeyFile /cert/key.key SSLCACertificateFile /cert/inter.crt </VirtualHost> <VirtualHost *:80> ServerName keypad.io ServerAlias www.keypad.io DocumentRoot /var/www/keypad Redirect permanent / https://keypad.io/ </VirtualHost>
没有斜杠请求:
curl -v http://keypad.io/bla
将您redirect到https://keypad.iobla位置。