gpt4 book ai didi

apache - 如何使用 Apache 运行多个启用 SSL 的网站以进行本地开发

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:18 25 4
gpt4 key购买 nike

我有几个正在开发的网站,通过虚拟服务器和不同的文档根目录,将它们配置为基于端口进行访问。 IE。 localhost:8010对于一个站点,localhost:8020另一个。

在我拥有多个站点之前,SSL 仅在一个使用端口 80 和 443 的站点上运行良好。但是现在未 protected 站点加载正常,但对于其中任何一个站点都无法建立 SSL 连接。它似乎也没有更改端口——当我单击以 https://开头的链接时,它会尝试转到 https://localhost:8010/secure/route。 .

我可以接受像 https://localhost:8010/secure/route 这样的任何一个 url工作,或根据网站自动升级到其他端口(即 https://localhost:8011/project/one/secure/routehttps://localhost:8021/project/two/secure/route )或其他任何东西,只要我可以使用不同的端口和 SSL 在本地运行两个站点!

在我的 httpd.conf 我有:

Listen 8010
Listen 8020

还有:

<Directory "/path/to/project/one">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>

<Directory "/path/to/project/two">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>

在我的 httpd-vhosts.conf 我有:

<VirtualHost *:8010>
ServerAdmin zugwalt@projectone.com
DocumentRoot "/path/to/project/one"
ServerName localhost:8010
ErrorLog "logs/projectone-error.log"
CustomLog "logs/projectone-access.log" common
</VirtualHost>

<VirtualHost *:8020>
ServerAdmin zugwalt@projecttwo.com
DocumentRoot "/path/to/project/two"
ServerName localhost:8020
ErrorLog "logs/projecttwo-error.log"
CustomLog "logs/projecttwo-access.log" common
</VirtualHost>

在我的 httpd-ssl.conf 我有:

Listen 443

<VirtualHost *:443>
DocumentRoot "/path/to/project/one"
ServerName localhost:8010
SSLEngine on
SSLCertificateFile /path/to/ssl/server.crt
SSLCertificateKeyFile /path/to/ssl/server.key
</VirtualHost>

<VirtualHost *:443>
DocumentRoot "/path/to/project/two"
ServerName localhost:8020
SSLEngine on
SSLCertificateFile /path/to/ssl/server.crt
SSLCertificateKeyFile /path/to/ssl/server.key
</VirtualHost>

我在 Windows 7 上使用 Apache 2.4

最佳答案

您将两个虚拟主机都定义在端口 443 上 <VirtualHost *:443>但是每个人都没有真正的 dns 主机名!您将服务器名称设置为 localhost:8010 和 8020 - 这将不起作用,因为端口不是 dns 名称的一部分!

您必须有不同的服务器名称,例如 ssl1.example.com 和 ssl2.example.com - 另一方面,您可以像为纯 http 所做的那样为 ssl 定义不同的端口:

<VirtualHost *:8110>
DocumentRoot "/path/to/project/one"
ServerName localhost
SSLEngine on
SSLCertificateFile /path/to/ssl/server.crt
SSLCertificateKeyFile /path/to/ssl/server.key
</VirtualHost>

<VirtualHost *:8120>
DocumentRoot "/path/to/project/two"
ServerName localhost
SSLEngine on
SSLCertificateFile /path/to/ssl/server.crt
SSLCertificateKeyFile /path/to/ssl/server.key
</VirtualHost>

然后在浏览器中使用端口:

https://localhost:8110

关于apache - 如何使用 Apache 运行多个启用 SSL 的网站以进行本地开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20363829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com