Aller au contenu

Apache 2 + SSL


Messages recommandés

Bon je suis en train de faire joujou avec Apache, et je dois faire tourner mon serveur en SSL

Donc grace à ce tres bon site ICI j'ai crée ma clé et mon certificat mais quand je demare apache j'ai cette erreur

 
Impossible de démarrer apache :

Démarrage de httpd : Apache/2.0.40 mod_ssl/2.0.40 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.

Server HotSpot:443 (RSA)
Enter pass phrase:Apache:mod_ssl:Error: Private key not found.
**Stopped
[ECHOUE]

Lien vers le commentaire
Partager sur d’autres sites

Il semble que ta clé soit mal fabriquée... malgré que l'info de ton lien semble bon.

Il y a une multitude de conception possible pour les certificats.

Voici celle que j'utilise et qui fonctionne bien:

Créez un dossier temporaire: mkdir /temp/wwwkey

Déplacez-vous dans ce dossier et exécutez: openssl genrsa -out cert.key 1024

Tapez ensuite: openssl req -new -key cert.key -out cert.csr (ou bien envoyez la requête à RSA, Verisign, ... si vous voulez)

Cette étape vous demandera d'inscrire des commentaires pour la fabrication du certificat. Il est important de ne rien inscrire de personnel ou qui pourrait mettre en risque la sécurité et il faut également s'assurer que la valeur utilisée pour le Common Name (CN) soit identique au nom du site web (ex.: mon.domaine.com) qui est également spécifié dans ServerName dans le fichier de config d'Apache.

Vous devrez fournir mot de passe Challenge password qui sera utile pour utilisation futur de nouveaux certificats. Votre mot de passe doit être gardé en lieu sûr.

La dernière étape est d'ajouter la signature du certificat en tapant cette commande: openssl x509 -req -days 3650 -in cert.csr -signkey cert.key -out cert.crt

il ne reste qu'à copier les fichier cert.crt et cert.key dans le chemin d'accès configuré par Apache dans httpd.conf.

Lien vers le commentaire
Partager sur d’autres sites

Bon, ca ne marche pas, il ne me même plus d'erreur, quand je lance apache il me met juste echouer :cartonrouge:

Donc, je cherche toujours sur le waib pour mo trouver la cause de mon ptit problème... En fouillant un peu mon fichier httpd.conf, j'ai peut être une idée d'ou vient le probleme

# Virtual host WifiAuthentification
<VirtualHost 192.168.182.1:80>
DocumentRoot /var/www
 
 
 

 
 
DirectoryIndex splash.html hotspotlogin.cgi index.html index.shtml 

<Directory "/var/www/cgi-bin/">
 	AllowOverride none
 	
 
 
</Directory> 
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.csr/cert.csr
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/cert.key
ServerName HotSpot
SSLProtocol +SSLv2 +SSLv3



<IfDefine HAVE_SSL>

Je n'ai mis que la partie qui contient mon hote virtuel.... mais il me semble que sur ce que j'ai pu voir sur le net ils ont _default_:443 à coté de virtual host

Lien vers le commentaire
Partager sur d’autres sites

Est-ce que tu as toujours une copie de ton fichier httpd.conf d'origine. Si oui, je te conseille de recommencer les tests avec celui ci... des fois c'est simplement un seul caractère qui est manquant et qui cause tous les problèmes.

*Ton bout d'exemple ne montre pas la partie nécesaire au certificat (SSL) qui commence à "<IfDefine HAVE_SSL>".

Bon voici les lignes qu'il faut avoir au minimum (Mes exemples proviennent d'un Apache 1.3.x... mais c'est pratiquement pareil sous Apache 2.x)

----------------------------------------------------------

<IfDefine HAVE_SSL>

Listen 80

Listen 443

</IfDefine>

<IfDefine HAVE_SSL>

AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl .crl

</IfDefine>

<IfModule mod_ssl.c>

SSLPassPhraseDialog builtin

SSLSessionCache dbm:logs/ssl_scache

SSLSessionCacheTimeout 300

SSLMutex file:logs/ssl_mutex

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

SSLLog logs/ssl_engine_log

SSLLogLevel error

</IfModule>

<IfDefine HAVE_SSL>

<VirtualHost _default_:443>

DocumentRoot "/serveur/securewww"

ServerName my.server.com

ServerAdmin webmaster@my.server.com

ErrorLog logs/error_log

TransferLog logs/ssl_access_log

SSLEngine on

SSLCertificateFile /etc/httpd/conf/keys/cert.crt

SSLCertificateKeyFile /etc/httpd/conf/keys/cert.key

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

SSLOptions +StdEnvVars

</Files>

<Directory "/var/www/cgi-bin">

SSLOptions +StdEnvVars

</Directory>

SetEnvIf User-Agent ".*MSIE.*" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

</IfDefine>

---------------------------------------------------------------

Ton serveur HTTPS doit répondre sur le port 443, la page de démarrage (dossier) devrait être différente de ton serveur par défaut et le chemin d'acès vers les fichiers de certificats doit être valide !

* Avec Apache 2.x tu va surement retrouver les mêmes options mais dans un ordre différent.

Lien vers le commentaire
Partager sur d’autres sites

En tout cas grand :reflechis: pour ton aide

J'ai fait des recherche avec l'ami :google: mais mes certificats semblent correctes

En fait j'ai 2.... j'arrive à faire 2 config

- 1er tourne pas : erreur certificat vide

- 2eme il m'affiche la page d'apche, mais pas la mienne

voilà ma 1ere config

# Virtual host WifiAuthentification
<VirtualHost 192.168.182.1:443>
DocumentRoot "/var/www"
ServerName HotSpot
ServerAdmin webmaster@isppc.com
ErrorLog logs/error_log
TransferLog logs/ssl_access_log
SSLEngine on
SSLCertificateFile /etc/httpd/conf/key/192.168.182.1.crt
SSLCertificateKeyFile /etc/httpd/conf/key/192.168.182.1.key

<Files ~ "\.(html|cgi|shtml|phtml|php3?)$">
 SSLOptions +StdEnvVars
</Files>


DirectoryIndex splash.html hotspotlogin.cgi index.html index.shtml 
 SSLOptions +StdEnvVars
<Directory "/var/www/">
 	AllowOverride none
 	
 
 
</Directory> 


SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


<IfDefine HAVE_SSL>
Listen 80
Listen 443
</IfDefine>





<IfModule mod_ssl.c>
SSLPassPhraseDialog builtin
SSLSessionCache dbm:logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:logs/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
#SSLLog logs/ssl_engine_log
#SSLLogLevel error
</IfModule>	
</VirtualHost>

Lien vers le commentaire
Partager sur d’autres sites

Et voilà le 2eme fichiers de config

# Virtual host WifiAuthentification

<IfDefine HAVE_SSL>
Listen 80
Listen 443
</IfDefine>


<IfDefine HAVE_SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfDefine>


<IfModule mod_ssl.c>
SSLPassPhraseDialog builtin
SSLSessionCache dbm:logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:logs/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
#SSLLog logs/ssl_engine_log
#SSLLogLevel error
</IfModule>


<IfDefine HAVE_SSL>

<VirtualHost 192.168.182.1:443>
DocumentRoot /var/www
ServerName hotspot
ServerAdmin webmaster@my.server.com
ErrorLog logs/error_log
TransferLog logs/ssl_access_log
SSLEngine on
SSLCertificateFile /etc/httpd/conf/key/cert.crt
SSLCertificateKeyFile /etc/httpd/conf/key/cert.key

<Files ~ "\.(html|cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>

DirectoryIndex splash.html hotspotlogin.cgi index.html index.shtml 

<Directory "/var/www/cgi-bin/">
 #AllowOverride none
 SSLOptions +StdEnvVars	
 	
</Directory> 

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

</IfDefine>

<IfDefine HAVE_SSL>
 
 
 
 
 
 
 
 
</IfDefine>

Ils me semblent (mais je n'ai que peu de connaisances dans ce domaine ci) que le 1er fichier resptecte plus la "nomanclature" classique de Apache 2

Lien vers le commentaire
Partager sur d’autres sites

Les fichiers de ton site sont bien situés dans le dossier /var/www ?

Ce dossier est le dossier par défaut d'Apache qui contient probablement les fichiers de la page test. Moi, je me créé toujours un dossier différent (qui est normallement sur une autre partition en plus) du genre /serveur/www et je configure ce chemin d'accès et j'y stocke ma page index.html !

Et puis tu n'as qu'à taper https://192.168.182.1 après avoir redémarrer le Daemon de Apache et ça devrait fonctionner.

Comme je peux voir tu as ajouté

DirectoryIndex splash.html hotspotlogin.cgi index.html index.shtml

Assures-toi de simplement mettre uniquement la "vrai" page que tu veux qui se lance par défaut.

Lien vers le commentaire
Partager sur d’autres sites

Bon, j'ai suivi tes conseils, je me suis donc crée un dossier (/server/) qui contiendra mon site [le site sert à afficher un splash screen pour un hotspot gratuit, mais le deamon -- chillisoft -- requiert du https ]

donc maintenant, j'ai désactivé la page test d'apache, et lorsque je tape 192.168.182.1 il me efait une page contentant une sorte de listing de mon dossier ( ma page index.html est bien présente) et si je clic sur ma page il fait bien appel à mon script :incline::ouioui: et apache est bien configurer pour chercher la page index.html, le pire c'est qu'il est dans le bon dosser :transpi:

De plus si je tape https://192.xxxx il me dit que la connexion à été coupée brusquement et que j'ai peut être envoyer des données..... :p:fou::fou:

Edit:

Le https fonctionne, mais j'arrive toujours pas sur la bonne page :s

Enfin, c'est pas grave vu que ca ne me sert que pour l'authentification

Lien vers le commentaire
Partager sur d’autres sites

Revenons à la base de la config de Apache.

Dans ton fichier httpd.conf, il y a la config générale qui s'applique à Apache et au serveur web "par défaut" et tu retrouves ensuit la config (dans le même fichier) de chaque serveur virtuel dont le serveur qui répond au port sécurisé (443).

Assures-toi de ne pas mélanger les deux.

Si j'ai un serveur ou plus je fais comme ça:

1- Je créé un dossier /serveur/

2- Je créé un sous-dossier /serveur/www/ pour le serveur "par défaut" que je fais pointer dessus dans httpd.conf

3- Je créé un sous-dossier /serveur/wwwsecure/ pour mon serveur virtuel HTTPS (443).

4- Si j'ai d'autres serveurs virtuels je fait de même -> /serveur/autreserveur ...

Comme ça si quelqu'un fais une requête sur l'adresse IP directement (http://192.168.0.1) sans HTTPS (https://192.168.0.1), il va avoir la page du serveur par défaut dans laquelle je mets un lien automatique qui se dirige vers mon site sécurisé (https://192.168.0.1).

NOTE: Il ne faut jamais retrouver 2 serveurs (celui par défaut et/ou virtuels) qui pointent vers le même structure de dossiers (à partir de la racine de chaque serveur) car Apache ne saura pas lequel utiliser... et tu auras accès à tes pages sécurisés de façon non sécurisé. C'est probablement ça ton problème pourquoi tu n'obtiens pas la page d'index. Tu dois avoir configuré ton serveur virtuel pour HTTPS, mais sans donner le index.html dans la config générale.

Ces 3 lignes devraient être dans la config générale et non sous un serveur virtuel.

--------------------------

<IfModule mod_dir.c>

DirectoryIndex index.html

</IfModule>

-------------------------

Dans la config générale tu dois avoir ça:

DocumentRoot "/serveur/www"

<Directory />

Options none

AllowOverride none

Order deny,allow

Deny from all

</Directory>

<Directory /serveur/www>

Options none

AllowOverride None

Order deny,allow

Allow from all

</Directory>

<IfModule mod_dir.c>

DirectoryIndex index.html

</IfModule>

et dans ta section sécurisé:

<IfDefine HAVE_SSL>

<VirtualHost _default_:443>

DocumentRoot "/serveur/wwwsecure"

ServerName mon.serveur.com

<Directory "/serveur/wwwsecure">

AuthType Basic **** Si tu nécessite une authentification avec htpasswd

AuthName MEMBRES **** Si tu nécessite une authentification avec htpasswd

AuthUserFile /password/membres **** Si tu nécessite une authentification avec htpasswd

Options None

Order deny,allow

Allow from all

<Limit GET> **** Si tu nécessite une authentification avec htpasswd

require valid-user **** Si tu nécessite une authentification avec htpasswd

</Limit> **** Si tu nécessite une authentification avec htpasswd

</Directory>

</VirtualHost>

</IfDefine>

Il faut également que tu retrouve qqchose du genre dans httpd.conf, si tu fais une requête HTTPS ou tu demandes une page index.shtml pour que ton serveur Apache sache qu'il doit répondre en mode SSL:

<IfDefine HAVE_SSL>

Listen 80

Listen 443

</IfDefine>

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...