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
Apache OS X Mavericks上支持SSL的虚拟主机_Apache_Ssl_Https_Virtualhost_Osx Mavericks - Fatal编程技术网

Apache OS X Mavericks上支持SSL的虚拟主机

Apache OS X Mavericks上支持SSL的虚拟主机,apache,ssl,https,virtualhost,osx-mavericks,Apache,Ssl,Https,Virtualhost,Osx Mavericks,我在本地开发机器上安装了一些虚拟主机,在OSX10.9(Mavericks)上运行Apache/2.2.24 我的http-vhosts.conf文件(配置为通过httpd.conf加载)如下所示: NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents" ServerName localhost </VirtualHost> <Virtua

我在本地开发机器上安装了一些虚拟主机,在OSX10.9(Mavericks)上运行Apache/2.2.24

我的http-vhosts.conf文件(配置为通过httpd.conf加载)如下所示:

NameVirtualHost *:80

<VirtualHost *:80>
   DocumentRoot "/Library/WebServer/Documents"
   ServerName localhost
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/Users/me/Sites/testsite.com
   ServerName testsite.dev
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/Users/me/Sites/testsite2.com
   ServerName testsite2.dev
</VirtualHost>
Listen  *:443
NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
   DocumentRoot "/Library/WebServer/Documents"
   ServerName localhost
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/Users/me/Sites/testsite.com
   ServerName testsite.dev
</VirtualHost>

<VirtualHost *:443>
   SSLEngine on
   SSLCertificateFile /private/etc/apache2/ssl/server.crt
   SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
   DocumentRoot "/Users/me/Sites/testsite2.com"
   ServerName testsite2.dev
</VirtualHost>
我希望能够通过SSL(https)使用testsite2.dev

使用此当前配置,将调出我期望的页面,同时指向apache主页/Library/WebServer/Documents/index.html.en

我尝试了以下配置以及其他多个不起作用的配置:

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
   DocumentRoot "/Library/WebServer/Documents"
   ServerName localhost
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/Users/me/Sites/testsite.com
   ServerName testsite.dev
</VirtualHost>

<VirtualHost *:80 *:443>
   DocumentRoot "/Users/me/Sites/testsite2.com
   ServerName testsite2.dev
</VirtualHost>
NameVirtualHost*:80
名称虚拟主机*:443
DocumentRoot“/库/Web服务器/文档”
服务器名本地主机
DocumentRoot“/Users/me/Sites/testsite.com
ServerName testsite.dev
DocumentRoot“/Users/me/Sites/testsite2.com
ServerName testsite2.dev

是否可以让虚拟主机在本地计算机上的端口80和端口443上侦听?

我找到了如何执行此操作。我只是缺少一些指示来显示我的证书和密钥的位置。以下是我添加的内容:

<VirtualHost *:443>
   SSLEngine on
   SSLCertificateFile /private/etc/apache2/ssl/server.crt
   SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
   DocumentRoot "/Users/me/Sites/testsite2.com"
   ServerName testsite2.dev
</VirtualHost>

斯伦金安
SSLCertificateFile/private/etc/apache2/ssl/server.crt
SSLCertificateKeyFile/private/etc/apache2/ssl/server.key
DocumentRoot“/Users/me/Sites/testsite2.com”
ServerName testsite2.dev
如上下文所示,我的http-vhosts.conf文件如下所示:

NameVirtualHost *:80

<VirtualHost *:80>
   DocumentRoot "/Library/WebServer/Documents"
   ServerName localhost
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/Users/me/Sites/testsite.com
   ServerName testsite.dev
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/Users/me/Sites/testsite2.com
   ServerName testsite2.dev
</VirtualHost>
Listen  *:443
NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
   DocumentRoot "/Library/WebServer/Documents"
   ServerName localhost
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/Users/me/Sites/testsite.com
   ServerName testsite.dev
</VirtualHost>

<VirtualHost *:443>
   SSLEngine on
   SSLCertificateFile /private/etc/apache2/ssl/server.crt
   SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
   DocumentRoot "/Users/me/Sites/testsite2.com"
   ServerName testsite2.dev
</VirtualHost>
Listen*:443
名称虚拟主机*:80
名称虚拟主机*:443
DocumentRoot“/库/Web服务器/文档”
服务器名本地主机
DocumentRoot“/Users/me/Sites/testsite.com
ServerName testsite.dev
斯伦金安
SSLCertificateFile/private/etc/apache2/ssl/server.crt
SSLCertificateKeyFile/private/etc/apache2/ssl/server.key
DocumentRoot“/Users/me/Sites/testsite2.com”
ServerName testsite2.dev
如果未安装证书和密钥,则可以按照以下教程创建自己的证书和密钥:


它应该可以在Mountain Lion和Mavericks上使用。

通常,您不会将NameVirtualHost用于SSL,您会将每个服务器放在不同的IP上,a'la
等。感谢您的分享。我想您也可以启用httpd-SSL.conf,但对于一个简单的开发设置,这在一个文件中进行了很好的配置。谢谢,这对我有很大的帮助很多!帮助了我。非常感谢!我的httpd.conf中也缺少了
Listen 443