Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何在vhost中创建重定向SSL_Apache_Ssl - Fatal编程技术网

Apache 如何在vhost中创建重定向SSL

Apache 如何在vhost中创建重定向SSL,apache,ssl,Apache,Ssl,我有点疯狂:) 我有一个域example.com,我有一个www.example.com的SSL证书 example.com指的是服务器的IP地址(它是一个EC2实例) 在服务器的vhost.conf中,我有以下条目 <VirtualHost *:80> ServerName example.com Redirect permanent / https://www.example.com/ </VirtualHost> <VirtualHost _de

我有点疯狂:)

我有一个域example.com,我有一个www.example.com的SSL证书 example.com指的是服务器的IP地址(它是一个EC2实例)

在服务器的vhost.conf中,我有以下条目

<VirtualHost *:80>
   ServerName example.com
   Redirect permanent / https://www.example.com/
</VirtualHost>

<VirtualHost _default_:443>
  ServerName www.example.com
  DocumentRoot /var/www/vhosts/example-wp
  SSLEngine On
  ...
</VirtualHost>

ServerName example.com
重定向永久/https://www.example.com/
服务器名www.example.com
DocumentRoot/var/www/vhosts/example wp
斯伦金安
...
我从ApacheWiki获取信息。

谢谢你的帮助
Tristan

您已经列出了执行重定向所需的指令。您还需要告诉vhost文件您的证书和证书密钥存在的位置。您还需要说明用户浏览的目录是否要加载SSL。请参阅下面的完整配置文件示例

<VirtualHost *:80>
  ServerName www.example.com  
  ServerAlias example.com
  Redirect / https://www.example.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName www.example.com
  ServerAlias example.com
  ServerAdmin webmaster@local    

  DocumentRoot /path/to/web/content
  DirectoryIndex index.php index.html

  ErrorLog logs/error_log
  CustomLog logs/access combined

  SSLEngine on
  SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

  SSLCertificateFile /etc/apache2/ssl.crt/certfile.cer
  SSLCertificateKeyFile /etc/apache2/ssl.key/keyfile.key

  <Directory "/path/to/web/content/">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    SSLRequireSSL
  </Directory>

</VirtualHost>

服务器名www.example.com
ServerAlias example.com
重定向/https://www.example.com/
服务器名www.example.com
ServerAlias example.com
服务器管理员webmaster@local    
DocumentRoot/path/to/web/content
DirectoryIndex.php index.html
错误日志/错误日志
自定义日志/访问组合
斯伦金安
SSLCipherSuite全部:!ADH:!出口56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile/etc/apache2/ssl.crt/certfile.cer
SSLCertificateKeyFile/etc/apache2/ssl.key/keyfile.key
选项无
不允许超限
命令允许,拒绝
通融
SSLRequireSSL

不确定问题出在哪里。您已经具有执行重定向到HTTPS所需的指令。当然,对于初学者,还需要其他指令,如SSLCipherSuite、SSLCertificateFile和SSLCertificateKeyFile。感谢您的回答。但还是不行。奇怪的是,应该转到www.example.com的重定向不起作用。相反,它被重定向到443虚拟主机行,因此我需要一个我不想要的ServerAlias example.com。但我需要我的网站是在线的。用户会收到一条消息,表明证书不起作用,但比离线要好。那么,为什么重定向到https www.example.com不起作用呢?实际上,您有不同的“服务器名”。您可以使用ServerName和ServerAlias,并将其重定向到HTTPS。我更新了我的示例以满足您的需要。因此,如果您现在访问www.example.com或example.com,它会将您重定向到https://www.example.com。我的做法与此完全相同,但无论出于何种原因,都无法切换到https www.example.com,而只能切换到https example.com,因此证书不起作用。不知道该怎么办,解决了!wordpress中的设置设置为example.com而不是www.example.com。