我正在开发几个网站,并通过虚拟服务器和不同的文档根,将它们配置为基于端口进行访问。即localhost:8010
一个站点,localhost:8020
另一个站点。
在我拥有多个站点之前,SSL 仅在一个使用端口 80 和 443 的情况下运行良好。但是现在未受保护的站点可以正常加载,但是对于任何一个站点都无法建立 SSL 连接。它似乎也没有改变端口——当我点击一个以 https:// 开头的链接时,它会尝试转到https://localhost:8010/secure/route
.
只要我可以使用不同的端口和 SSL 在本地运行两个站点,我就可以使用喜欢工作的 url https://localhost:8010/secure/route
,或者根据站点自动升级到其他端口(即https://localhost:8011/project/one/secure/route
, )或其他方式!https://localhost:8021/project/two/secure/route
在我的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