我正在我的本地机器上编写一个 php 应用程序,想测试一下 SSL 是否正常工作。请耐心等待,因为这是我第一次使用 SSL。
到目前为止,这是我所做的:
- 创建了 SSL 证书。我关注了这个 this 的第一部分创建证书的教程。
- 我将
server.crt
文件导入到 chrome。 - 删除了
php.ini
中;extension=php_openssl.dll
前面的分号 ( reference ) - 根据 this 编辑了我的
httpd-vhosts.conf
文件页。该文件的相关部分如下。这是完整的文件:http://pastebin.com/k6Jh2eR6<VirtualHost *> DocumentRoot "C:\Users\user_name\Documents\project_one" ServerName project_one.localhost SSLEngine on SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateKeyFile "conf/ssl.key/server.key" <Directory "C:\Users\user_name\Documents\project_one"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
我通常会通过输入 http://project_one.localhost
当尝试通过在 chrome 中键入 https://project_one.localhost
访问我的项目时,我会自动转发到 https://project_one.localhost/xampp/
(好像 XAMPP 根本不将 https://project_one.localhost
识别为子域,并将其视为我正在输入 https://localhost
) 知道我哪里搞砸了吗?
注意:
LoadModule ssl_module modules/mod_ssl.so
在httpd.conf
文件中取消注释
最佳答案
SSL,属于 HTTPS://url.here/
variety,完全由 Apache 处理,与 PHP、任何 PHP 的扩展/模块或任何 php.ini 设置无关。
一个典型的 SSL Enabled VirtualHost 看起来像这样并且至少包含这些部分......
<VirtualHost *:443>
DocumentRoot "C:/WampDeveloper/Websites/www.example.com/webroot"
ServerName www.example.com
ServerAlias example.com
SSLEngine On
SSLCertificateFile "C:/WampDeveloper/Websites/www.example.com/certs/public.crt"
SSLCertificateKeyFile "C:/WampDeveloper/Websites/www.example.com/certs/private.key"
<Directory "C:/WampDeveloper/Websites/www.example.com/webroot">
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
</VirtualHost>
(以上路径来 self 的 WampDeveloper Pro 设置,Xampp 的会略有不同)
你的 <VirtualHost *>
线路有问题。它需要一个端口号,对于 HTTPS://URL 始终为 443,并结合 IP 地址或前面的星号。如果使用星星,还有一个 NameVirtualHost *:443
线...
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
DocumentRoot "C:\xampp\htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "C:\Users\user_name\Documents\project_one"
ServerName project_one.localhost
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:\Users\user_name\Documents\project_one">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\Users\user_name\Documents\project_two"
ServerName project_two.localhost
<Directory "C:\Users\user_name\Documents\project_two">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
关于apache - 使用虚拟主机时如何在 XAMPP 中使用 https (SSL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430574/