我正在尝试从我的本地网络服务器访问Active Directory。为此,我使用的是最新版本的xampp和一个名为adLDAP的PHP脚本。如果我理解正确,我需要启用SSL才能访问https网址。我试图谷歌它,但没有运气:(任何人都可以链接教程或向我解释如何在xampp / apache上为Windows 7 64位安装SSL?任何帮助将不胜感激:)
答案 0 :(得分:28)
Apache部分 - 允许您打开https://localhost/xyz
配置文件xampp / apache / conf / extra / httpd-ssl.conf包含所有特定于ssl的配置。它有相当好的文档记录,所以请阅读评论并查看http://httpd.apache.org/docs/2.2/ssl/。
文件以<IfModule ssl_module>
开头,因此只有在使用mod_ssl模块启动apache时才会生效。
在编辑器中打开文件xampp / apache / conf / httpd.conf并搜索该行
#LoadModule ssl_module modules/mod_ssl.so
删除hashmark,保存文件并重新启动apache。网络服务器现在应该从xampp的基本/默认ssl配置开始;足以进行测试,但您可能希望在apache文档中阅读更多有关mod_ssl的信息。
PHP部分 - 使adldap能够使用ldap over ssl
adldap需要php的openssl扩展才能使用“ldap over ssl”连接。 openssl扩展以xampp的形式发布。你必须“告诉”php加载这个dll,例如在你的php.ini中加上extension=nameofmodule.dll
运行
echo 'ini: ', get_cfg_var('cfg_file_path');
它应该显示你的php安装使用哪个ini文件(php-apache-module和php-cli版本可能不同)。
在编辑器中打开此文件并搜索
;extension=php_openssl.dll
删除分号,保存文件并重新启动apache。
答案 1 :(得分:6)
事实证明,OpenSSL是在XAMPP 1.7.2的php 5.3中编译和启用的,因此不再需要单独的扩展dll。
但是,您仍然需要在PHP.ini文件中启用行extension=php_openssl.dll
答案 2 :(得分:4)
我在这里做了大部分建议的事情,但仍然没有奏效。试过这个并且它有效: 打开 XAMPP控制面板,找到 Apache模块的配置按钮。单击“配置”按钮,然后选择 PHP(php.ini)。使用任何文本编辑器打开并删除 php_openssl 之前的半列。保存并重启Apache。那应该做!
答案 3 :(得分:2)
您可以通过创建自签名证书然后安装这些证书来在XAMPP上启用SSL。键入以下命令以生成证书并将证书移动到ssl文件夹。
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
cp server.crt /opt/lampp/etc/ssl.crt/domainname.crt
cp server.key /opt/lampp/etc/ssl.key/domainname.key
(如果您不是超级用户,请在每个命令中使用sudo)
现在,检查[XAMPP_HOME] /etc/httpd.conf中是否启用了mod_ssl:
LoadModule ssl_module modules / mod_ssl.so
通过编辑[XAMPP_HOME] /etc/extra/httpd-ssl.conf添加虚拟主机,在本例中为“localhost.domainname.com”,如下所示:
<virtualhost 127.0.1.4:443>
ServerName localhost.domainname.com
ServerAlias localhost.domainname.com *.localhost.domainname.com
ServerAdmin admin@localhost
DocumentRoot "/opt/lampp/htdocs/"
DirectoryIndex index.php
ErrorLog /opt/lampp/logs/domainname.local.error.log
CustomLog /opt/lampp/logs/domainname.local.access.log combined
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /opt/lampp/etc/ssl.crt/domainname.crt
SSLCertificateKeyFile /opt/lampp/etc/ssl.key/domainname.key
<directory /opt/lampp/htdocs/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</directory>
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</virtualhost>
将以下条目添加到/ etc / hosts:
127.0.1.4 localhost.domainname.com
现在,尝试安装证书/尝试将证书导入浏览器。我检查了这个,这适用于Ubuntu。
答案 4 :(得分:1)
我已经浏览了互联网上的所有答案和教程,但这里是基本步骤到启用 SSL( https )on localhost XAMPP :
运行 - &gt; &#34; C:\ XAMPP \阿帕奇\ makecert.bat&#34; (双击窗口) 填写你选择的passowords,按Enter输入所有内容但是定义&#34; localhost&#34; !!!在这里被问到时要小心:
通用名称(例如服务器FQDN或您的名字)[]: localhost
(证书仅按域名区域发布!)
XAMPP - &gt; Apache - &gt;配置 - &gt; httpd.conf(&#34; C:\ xampp \ apache \ conf \ httpd.conf&#34;)
LoadModule ssl_module modules / mod_ssl.so(删除#形成行的开头)
XAMPP - &gt; Apache - &gt;配置 - &gt; php.ini(&#34; C:\ xampp \ php \ php.ini&#34;)
extension = php_openssl.dll(删除;从行首开始)
重启apache和chrome!
检查任何问题或证书的状态:
Chrome - &gt; F12 - &gt;安全 - &gt;查看证书
答案 5 :(得分:0)
我在这里完成了所有建议的内容,但我的代码仍无效,因为我使用curl
如果你在php文件中使用curl
,curl似乎默认拒绝所有ssl流量。一个对我有用的快速修复是添加:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
致电之前:
curl_exec():
在php文件中。
我认为这会禁用SSL证书的所有验证。