web-dev-qa-db-fra.com

Configuration de SSL sur un serveur xampp/Apache local

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 :)

23
horgen

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

28
VolkerK

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 

6
Flak DiNenno

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!

4
dc-aoxn

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.

2
sAn

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.

0
Chris Dutrow