Installation SSL dans Wamp server: erreur dans httpd-ssl.conf
j'essaie de configurer ssl sur l'hôte local j'ai suivi le http://madurad.wordpress.com/2014/04/25/redirect-http-to-https-with-wamp-server/ et beaucoup d'autres mais incapables d'obtenir le succès. je suis resté dans la syntaxe de httpd-ssl.conf. mon serveur apache tombe en panne lorsque je mets le
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
SSLOptions +StdEnvVars
</Directory>
j'ai essayé beaucoup d'autres comme
<Directory "c:/wamp/www/">
SSLOptions +StdEnvVars
</Directory>
qu'est-ce que la question ne peut pas obtenir....
7 réponses
comment configurer WAMPServer pour utiliser HTTPS SSL
*il ne s'agit pas d'un processus anodin. Ce tutoriel fera, espérons-le, travailler SSL pour vous. Cependant, le fait de le configurer correctement une fois qu'il fonctionne est totalement à vous.
lecture Supplémentaire pour tous ceux qui voyagent de cette route
Ok,
j'ai basé ce tutoriel sur la création d'un site appelé www.wamphelpers.dev So wherever you see that changement de nom pour le nom du site que vous essayez d'obtenir.
j'ai commencé par créer un site non sécurisé, in \wamp\www\wamphelpers
ajout d'un Hôte Virtuel pour ce site, dans \wamp\bin\apache\apache{version}\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "c:/wamp/www">
AllowOverride All
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev
ServerAlias www.wamphelpers.dev
<Directory "c:/wamp/www/wamphelpers">
AllowOverride All
Require local
</Directory>
</VirtualHost>
a ajouté son nom de domaine au C:\windows\system32\drivers\etc\hosts
certaines vérificateurs de virus bloquent l'accès au fichier HOSTS de sorte que vous pouvez avoir besoin de désactiver votre vérificateur de virus, ou de le configurer pour ne pas bloquer le fichier hosts temporairement.
127.0.0.1 wamphelpers.dev www.wamphelpers.dev
::1 wamphelpers.dev www.wamphelpers.dev
redémarrez maintenant dnscache comme suit à partir d'une commande windows lancée en utilisant 'Run as Administrator'
net stop dnscache
net start dnscache
a ensuite créé un script simple dans \wamp\www\wamphelpers\index.php
<?php
echo 'Hello, this is the WAMPHELPERS.DEV site homepage';
?>
maintenant, pour activer les nouveaux serveurs virtuels que vous avez définis, éditez \wamp\bin\apache\apache{version}\conf\httpd.conf
et trouvez cette ligne
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
et supprimer le #
caractère de commentaire comme
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Enregistrer le fichier.
maintenant redémarrez Apache et assurez-vous que votre simple site hébergé virtuellement non sécurisé fonctionne avant de continuer.
La boîte à outils openssl. Openssl.exe, ssleay32.dll et libeay32.dll viennent avec, et sont situés dans, le C:\wamp\bin\apache\apachex.y.z\bin Cela devrait être tout ce dont vous avez besoin pour créer votre propre certificat signé !!
HOWEVER: ceux-ci n'ont pas fonctionné pour moi sur toutes les versions d'Apache que j'avais installé. J'ai toujours eu ce message d'erreur.
où le numéro ordinal a changé en fonction du dossier de version d'apache dans lequel j'étais.
Si vous obtenez cette erreur ne vous inquiétez pas c'est ce que vous devez faire.
installez la dernière version de la boîte à outils OPENSSL
cela peut être obtenu à partir de ici
NOTE: N'utilisez pas le V1.1 version Pour l'instant, L'équipe PHP n'a pas encore compilé PHP avec ces nouveaux liens, donc restez sur la V1.0.? versions, jusqu'à ce qu'ils font.
choisissez la dernière version de 'Win32 OpenSSLv xxx Light' ou 'Win64 OpenSSLv xxx Light' pour correspondre à votre version installée de WAMPServer, car c'est tout ce dont vous avez besoin.
télécharger un .fichier exe que vous pouvez exécuter pour installer cette boîte à outils.
Il va posez la question suivante, je vous suggère de répondre comme ceci afin que vous ne finissiez pas installer quelque chose dans C:\windows\system32. Après tout, il s'agit d'une boîte à outils et elle change assez souvent. Il vaut mieux les séparer et ne pas les rendre globales.
une fois que cela est installé ( dans n'importe quel dossier que vous avez spécifié dans l'installation), vous devriez être prêt à démarrer le processus de génération des clés et les certificats!
Générer des clés et des Certificats.
étape 1: générer une clé privée RSA
nous devons d'abord créer nous-mêmes un certificat. La normale (payé) processus consiste à créer votre certificat, puis le transmettre à l'autorité signataire. C'est pourquoi il en coûte de l'argent, comme ils doivent le faire, due dilligence, pour vérifier que vous êtes qui vous dites que vous êtes et ce site que vous allez utiliser le certificat sur est réelle et légitime.
la boîte à outils openssl est utilisée pour générer une clé privée RSA et CSR (demande de signature de certificat) à utiliser pour notre certificat. La première étape consiste à créer votre clé privée RSA. Cette clé est une clé RSA de 1024 bits qui est chiffrée en utilisant Triple-DES et stockée dans un format PEM afin qu'elle soit lisible en tant que texte ASCII.
ouvrir une fenêtre de commande (Boîte Dos) en utilisant [b]exécuter en tant Qu'administrateur [/b] Changer le répertoire à L'endroit où vous avez installé OpenSSL Trousse à outils ci-dessus. Dans mon cas, c'est
CD c:\apps\OpenSSL-Win32\bin
créer un dossier pour la sortie à mettre en place ( pour garder le dossier bin rangé ) j'ai utilisé site web
md website
Maintenant, entrez cette commande:
openssl genrsa -out website\server.key 2048
cela aurait dû créer un fichier dans le dossier du site Web appelé server.clé, sans la clé de phrase de passe, vérifiez qu'elle existe.
Étape 2: générer un CSR (demande de signature de certificat)
pendant la génération du CSR, plusieurs informations vous seront demandées.
Ce sont les attributs X. 509 du certificat.
Une des invites sera pour " Common Name (e.g. server FQDN or YOUR name) []:".
il est important que ce champ soit rempli avec le nom de domaine entièrement qualifié du serveur à protéger par SSL.
Donc, si le site web à protéger sera https://www.wamphelpers.dev
, puis entrez www.wampheplers.dev
à cette invite. J'ai utilisé wamphelper.dev
mon ServerName
ServerName wamphelpers.dev
n'entrez pas rien à la question suivante: Un défi de mot de passe []:] appuyez Simplement sur Entrée. Si vous entrez une phrase de passe ici lorsque vous venez pour démarrer Apache avec SSL configuré Apache ne démarre pas et donnera ce message d'erreur: -
[error] Init: SSLPassPhraseDialog builtin n'est pas supporté sur Win32
en gros, si vous saisissez un mot de passe, Apache est censé vous défier pour ce mot de passe chaque fois qu'il commence. Ce n'est évidemment pas aller pour rendre votre vie plus facile, mais principalement sur windows, il n'est pas réellement le travail, et provoquez le crash D'Apache quand il tente de demander la phrase de passe, avec l'erreur ci-dessus.
la commande pour générer le CSR est la suivante:
openssl req -new -key website\server.key -out website\server.csr
Example question and answers:
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]: Hampshire
Locality Name (eg, city) []: Portsmouth
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Wamp Helpers Ltd
Organizational Unit Name (eg, section) []: Information Technology
Common Name (e.g. server FQDN or YOUR name) []: wamphelpers.dev
Email Address []: me@wamphelpers.dev
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ( leave blank just hit the enter key )
An optional company name []: ( leave blank just hit the enter key )
Étape 3: Production d'un certificat auto-signé
À ce stade, vous aurez besoin de générer un certificat auto-signé parce que vous ne prévoyez pas faire signer votre certificat par une AC, ou vous souhaitez tester votre nouvelle mise en œuvre SSL pendant que l'AC signe votre certificat.
PRE-WARNING Ce certificat générera une erreur dans le navigateur client à l'effet que le pouvoir de signature du certificat est inconnu et on ne lui fait pas confiance. C'est inévitable puisque nous signons le certificat nous-mêmes, mais bien sûr le réseau de confiance ne sait pas qui nous sommes. voir l'exemple plus loin dans ce document montrant comment dire à votre navigateur que vous faites confiance à ce certificat!--63-->
openssl x509 -req -days 365 -in website\server.csr -signkey website\server.key -out website\server.crt
Example output:
Loading 'screen' into random state - done
Signature ok
subject=/C=GB/ST=Hampshire/L=Portsmouth/O=WampHelpers Ltd/OU=Information Technology/CN=www.wamphelpers.dev/emailAddress=riggsfolly@wamphelpers.dev
Getting Private key
Etape 4: Installation de la clé privée et du certificat
créez ces 2 répertoires sous la version D'Apache que vous utilisez.
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
et copiez le fichier que nous venons de générer comme suit:
copy website\server.crt c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
copy website\server.key c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
Etape 5: configurer Apache pour activer SSL
éditer httpd.conf, vérifiez que cette ligne est sans commentaire
LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
supprimer le commentaire '#' de cette ligne aussi
Include conf/extra/httpd-ssl.conf
puis déplacez cette ligne après ce bloc .... comme
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
Etape 6: configurer PHP pour activer SSL
éditez votre php.ini (utilisez les menus wampmanager pour éditer le bon )
supprimer le commentaire ';' de cette ligne
extension=php_openssl.dll
Étape 7: configurer vos sites sécurisés virtuel Accueil
Yup pour tous ceux qui sont des serveurs virtuels que nay sayers, maintenant vous ne pouvez pas éviter le processus.
Edit \wamp\bin\apache\apachex.y.z\conf\extra\httpd-ssl.conf
ce fichier est publié par Apache et contient une localisation de fichier par défaut. Nous pouvons laisser la plupart de ce fichier comme il est, mais nous avons besoin de configurer l'hôte virtuel ici pour correspondre à notre emplacement réel de sites et quelques autres choses si:
trouver ces lignes
DocumentRoot "c:/Apache2/htdocs"
ServerName www.example.com:443
ServerAdmin admin@example.com
ErrorLog "c:/Apache2/logs/error.log"
TransferLog "c:/Apache2/logs/access.log"
et les changer
DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev:443
ErrorLog "c:/wamp/logs/ssl_error.log"
TransferLog "c:/wamp/logs/ssl_access.log"
Trouver
SSLCertificateFile "c:/Apache2/conf/server.crt"
et changez
SSLCertificateFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.crt/server.crt"
Trouver
SSLCertificateKeyFile "c:/Apache2/conf/server.key"
et changez
SSLCertificateKeyFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.key/server.key"
Trouver
<Directory "c:/Apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
et changez
Syntaxe Apache 2.2
<Directory "c:/wamp/www/wamphelpers">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</Directory>
Syntaxe Apache 2.4
<Directory "c:/wamp/www/wamphelpers">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
Trouver
SSLSessionCache "shmcb:c:/Apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
et le changer
SSLSessionCache "shmcb:c:/wamp/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
Trouver
CustomLog "c:/Apache24/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
et changez
CustomLog "c:/wamp/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
regardez essentiellement le fichier conf et toute commande qui n'est pas commentée, mais qui fait référence à un fichier ou à un dossier. doit être modifié pour faire référence à la structure du dossier WampServer et non 'C:/Apache2....'
assurez-vous Maintenant que tous les fichiers que nous avons modifiés sont sauvegardés et redémarrez Apache en utilisant les menus wampmanager.
premier test que le non protégé le site fonctionne toujours.
alors essayez d'utiliser votre nouveau site protégé en ajoutant le 'https: / /' à l'avant du nom de domaine
i.e. https://www.wamphelpers.dev
sans les simples guillemets bien sûr.
si Apache ne redémarre pas vous avez probablement épeautre quelque chose de mal. Tester les configs comme suit: -
Ouvrir une fenêtre de commande
cd \wamp\bin\apache\apachex.y.z\bin
httpd -t
Cela permettra d'analyser tous les fichiers de configuration et devrait vous donner un nom de fichier et un numéro de ligne où l'erreur a été trouvé.
réparez - le et réessayez.
le premier accès à votre site générera une page de message de ce genre. Cela utilise FireFox, d'autres seront légèrement différent, mais le concept est le même.
c'est parce que votre certificat n'est pas signé par une autorité de confiance, pas de panique, c'est supposé se produire.
cliquez sur, 'je comprends le risque' et cela vous montrera un bouton en disant "Ajouter une Exception" Appuyez sur le bouton Ajouter une Exception, après avoir vérifié que les détails du site des certificats sont bien les vôtres., et vous ne verrez plus ce message à moins que vous ne supprimiez la liste des exceptions.
BIG NOTE Depuis Apache v2.2.12 et OpenSSL v0.9.Il est maintenant possible de sécuriser plus d'un site par instance Apache. Ce tutoriel ne couvre pas ce processus. Voir ici pour plus d' détails:
et comme je l'ai dit au début, maintenant vous devez faire quelques recherches sur toutes les options disponibles dans la config SSL et faire fonctionner la chose comme vous voulez plutôt que d'utiliser la valeur par défaut.
il est nécessaire d'activer le module LoadModule socache_shmcb_module modules/mod_socache_shmcb.donc dans le fichier httpd.conf dans wampserver 2.5. Si ce n'apache lance le message suivant:
AH00526: erreur de syntaxe à la ligne 75 de C:/wamp/bin/apache/apache2.4.9/conf/extra/httpd-ssl.conf: SSLSessionCache: le cache de session' shmcb ' n'est pas supporté (noms connus:). Peut-être que vous avez besoin de charger le module socache approprié (mod_socache_shmcb?).
@RiggsFolly: quelques petites erreurs/fautes de frappe/ajouts dans votre tutoriel. Ci-dessous est utilisé en combinaison avec wampserver 2.5 64bits (Apache 2.4.9 et PHP 5.5.12) sur Windows 7 SP1 64bits:
-httpd-vhosts.conf est situé dans extra / httpd-vhosts.conf
-lorsque vous essayez de modifier votre fichier hosts assurez-vous de désactiver tout virusscanner. Certains bloquent l'accès au fichier hosts.
-assurez-vous d'ouvrir votre éditeur de texte en tant qu'administrateur lors de l'édition de votre fichier hosts ou bien vous obtenez une erreur en essayant de sauver.
- n'oubliez pas de supprimer # au début de la ligne hôte s'il y en a
- si vous utilisez WAMPServer 64bit assurez-vous de télécharger la version 64bit D'OpenSSL
-l'étape openssl genrsa-out site web\server.clé de 2048 crée un serveur.fichier clé et pas un privkey.pem!
-le fichier \wamp\bin\apache\apachex.y.z\conf\httpd-ssl.conf est situé à l'adresse \wamp\bin\apache\apachex.y.z\conf\extra\httpd-ssl.conf (peut-être que cela dépend the WAMPServer version)
- j'ai dû utiliser différents ports pour http (80 - >8080) et https(443->444) car ces ports étaient utilisés par je pense Skype. Lorsque vous utilisez différents ports, assurez-vous de les utiliser partout où vous voyez 80 ou 443 dans ce tutoriel
- j'ai aussi dû activer socache_shmcb_module. Le "httpd-t" l'a également mentionné.
Si vous avez l'erreur à quelque chose comme ceci:
Cannot load modules/mod_ssl.so into server: The specified module could not be found.
Vous pouvez essayer de rechercher libeay32.dll dans votre dossier wamp, vous le trouverez probablement dans {Dossier wamp} / bin/php/php{version 7}/
Copie libeay32.dll et ssleay32.dll et coller dans {wamp dossier}/bin/apache/apache{version 2.x}/bin/ ET {wamp dossier}/bin/php/php{version 5.x}. Assurez-vous de sauvegarder tout ce que vous placez.
Exécuter httpd-t et tester la syntaxe
NOTE: je crois que c'est dû à l'erreur dans la partie openssl d'apache pour wamp 3.0.6. Heureusement, dans le dossier php7, ces dlls sont compatibles avec apache et php5.
@RiggsFolly: certificat Auto-signé avec la clé pourrait être facilement généré par exemple ici... http://www.selfsignedcertificate.com/, pour que je puisse démarrer le tutoriel à partir de l'étape 4 (j'avais aussi standard :80 virtual server tournant).
en tout cas certaines choses mentionnées étaient déjà activées dans l'installation de WAMP par défaut (je suppose que cela change d'une version à l'autre), mais le reste m'a beaucoup aidé. Et en fait une chose manquait... J'ai également eu à décommenter la ligne suivante dans "httpd.conf"
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Si vous avez l'erreur :
impossible de charger les modules / mod_ssl.so into server: le système d'exploitation ne peut pas exécuter %1
Ensuite, vous devez :
- Installer Win32 OpenSSL ici http://slproweb.com/products/Win32OpenSSL.html
- Copier / coller libeay32.dll, ssleay32.dll dans votre dossier WAMP PHP bin (C:\wamp64\bin\php\php5.6.19)--12-->
- redémarrez apache
Note: testé sur Wamp server 3
Avant tout:
1).Arrêter WAMP et passer à C:\wamp\scripts\config.inc.php
déplacer à partir de la matrice de libeay32.dll
,ssleay32.dll
, lignes 133, 139
2).Installez OpenSSL à partir du site officiel,faites attention sur la version de votre OS x64 ou non.
invite de Commande:
3).cd C:\wamp\bin\apache\apache2.4.23\bin
4). openssl req -new > localhost.csr
5). openssl rsa -in privkey.pem -out localhost.key
6). openssl x509 -in localhost.csr -out localhost.crt -req -signkey localhost.key -days 365 -sha256 -extfile v3.ext
mise à Jour: de Chrome 58 nous aurons besoin de fournir Subject Alternative Name
.
Ce nom que nous pouvons obtenir à partir du fichier d'extension v3.ext
:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = 127.0.0.1
DNS.2 = localhost
Très important dans le Nom Commun pour insérer 'localhost'
7).Attrapez localhost.clé et localhost.crt et de les mettre à l' C:\wamp\bin\apache\apache2.4.23\conf\key
(assurez-vous,avant de créer de répertoire approprié)
Configuration:
8).activer C:\wamp\bin\apache\apache2.4.23\bin\php.ini
et
C:\wamp\bin\php\php5.6.25\php.ini
extension=php_openssl.dll
9).passez à l' C:\wamp\bin\apache\apache2.4.23\conf\httpd.conf
et sans complaisance:
LoadModule ssl_module modules/mod_ssl.so
,
Include conf/extra/httpd-ssl.conf
,
Include conf/extra/httpd-vhosts.conf
,
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
10). passez à l' C:\wamp\bin\apache\apache2.4.23\conf\extra\httpd-ssl.conf
et apporter des modifications :
SSLSessionCache "shmcb:c:/wamp/bin/apache/apache2.4.23/logs/ssl_scache(512000)"
,
SSLSessionCacheTimeout 300
,
VirtualHost _default_:443
,
DocumentRoot "c:/wamp/www/"
,
ServerName localhost:443
,
ErrorLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_error.log"
, (créer un fichier si ce n' il existe)
TransferLog "c:/wamp/bin/apache/apache2.4.23/logs/access.log"
,
SSLCertificateFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.crt"
,
SSLCertificateKeyFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.key"
,
<Directory "c:/wamp/www/">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
,
CustomLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_request.log"
traitement des certificats:
11).appuyez sur Win+R et insérez " certmgr.msc',l'importation servercert.crt en "Racine de Confiance Certifié Autorités'
12). Vérifiez votre serveur dans l'invite de commande 'httpd-t' doit être 'syntaxe OK'
13). Lancez Wamp et procédez au lien https://localhost
je suis espérons que cela aidera
Remarque: lire cet article sur Mozilla comportement :
https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/