J'essaie d'accéder à Active Directory à partir de mon serveur Web local. Pour ce faire, j'utilise la dernière version de xampp et un script PHP appelé adLDAP . Si je comprends bien, je dois activer SSL pour accéder aux URL https. J'ai essayé de le rechercher sur Google mais sans succès :( Quelqu'un pourrait-il créer un lien vers un tutoriel ou m'expliquer comment installer SSL sur xampp/Apache pour Windows 7 64 bits? Toute aide serait la bienvenue :)
Partie Apache - permettant d’ouvrir https: // localhost/xyz
Il y a le fichier de configuration xampp/Apache/conf/extra/httpd-ssl.conf qui contient toute la configuration spécifique à ssl. C'est assez bien documenté, donc lisez les commentaires et regardez http://httpd.Apache.org/docs/2.2/ssl/ . Les fichiers commencent par <IfModule ssl_module>
, de sorte qu'il n'a un effet si Apache a été démarré avec son module mod_ssl.
Ouvrez le fichier xampp/Apache/conf/httpd.conf dans un éditeur et recherchez la ligne.
#LoadModule ssl_module modules/mod_ssl.so
supprimez la marque de hachage, sauvegardez le fichier et redémarrez Apache. Le serveur Web devrait maintenant commencer par la configuration de base/par défaut ssl de xampp; assez bon pour les tests, mais vous voudrez peut-être en lire un peu plus sur mod_ssl dans la documentation Apache.
Partie PHP - permettant à adldap d'utiliser ldap over ssl
adldap a besoin de l'extension openssl de php pour utiliser les connexions "ldap over ssl". L'extension openssl est livrée sous forme de DLL avec xampp. Vous devez "dire" à php pour charger cette dll, par exemple. en ayant un extension=nameofmodule.dll
dans votre php.ini
Courir
echo 'ini: ', get_cfg_var('cfg_file_path');
Il devrait vous montrer quel fichier ini est utilisé par votre installation php (peut varier entre php-Apache-module et php-cli).
Ouvrez ce fichier dans un éditeur et recherchez
;extension=php_openssl.dll
supprimez le point-virgule, sauvegardez le fichier et redémarrez Apache.
voir aussi: http://docs.php.net/install.windows.extensions
Il s’avère que OpenSSL est compilé et activé dans php 5.3 de XAMPP 1.7.2 et n’a donc plus besoin d’une extension distincte dll.
Cependant, vous devez TOUJOURS l'activer dans votre fichier PHP.ini avec la ligne extension=php_openssl.dll
J'ai fait la plupart des choses suggérées ici, toujours ne fonctionnait pas. Essayez ceci et cela a fonctionné: Ouvrez le XAMPP Control Panel , localisez le bouton Config du module Apache . Cliquez sur le bouton Config et sélectionnez PHP (php.ini) . Ouvrez avec n'importe quel éditeur de texte et supprimez la demi-colonne avant php_openssl . Enregistrez et redémarrez Apache. Cela devrait faire!
Vous pouvez activer SSL sur XAMPP en créant des certificats auto-signés, puis en installant ces certificats. Tapez les commandes ci-dessous pour générer et déplacer les certificats dans des dossiers 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/nomdomaine.crt
cp server.key /opt/lampp/etc/ssl.key/domainname.key
(Utilisez Sudo avec chaque commande si vous n'êtes pas le super utilisateur)
Maintenant, vérifiez que mod_ssl est activé dans [XAMPP_HOME] /etc/httpd.conf:
LoadModule ssl_module modules/mod_ssl.so
Ajoutez un hôte virtuel, dans cet exemple "localhost.nomdomaine.com" en modifiant [XAMPP_HOME] /etc/extra/httpd-ssl.conf comme suit:
<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>
Ajoutez l'entrée suivante à/etc/hosts:
127.0.1.4 localhost.domainname.com
Maintenant, essayez d'installer le certificat/essayez d'importer le certificat dans le navigateur. J'ai vérifié ceci et cela a fonctionné sur Ubuntu.
J'ai fait toutes les choses suggérées ici et mon code ne fonctionnait toujours pas car j'utilisais curl
Si vous utilisez curl
dans le fichier php, curl semble rejeter tout le trafic ssl par défaut. Une solution rapide qui a fonctionné pour moi a été d'ajouter:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
avant d'appeler:
curl_exec():
dans le fichier php.
Je crois que cela désactive toute vérification des certificats SSL.