Bonjour,
je rencontre un problème de configuration d'un vhost apache (2.2).
Mon but est de pouvoir acceder au site web uniquement en SSL soit en présentant un certificat client soit en venant d'une IP donnée.
Mon vhost actuel ne me permet pas d'acceder directement en SSL via l'IP sans présenter de certificat. La partie certificat fonctionnant parfaitement.
J'ai bien pensé à un 'Satisfy Any' mais comment y intégrer la notion de certificat SSL ?
J'ai épluché la documentation apache et utiliser google à tout va mais je n'ai pas trouvé de configuration par IP ou certificat UNIQUEMENT par SSL.
Note: la directive 'SSLVerifyClient optional' est incompatible avec au moins IE 8.
Voici ç quoi ressemble mon vhost:
(192.168.1.1 sera remplacé par des IP publiques donc pas de solution HTTP/IP+HTTPS/certificat possible)
<VirtualHost x.x.x.x:443> SSLEngine on
SSLCertificateFile /etc/httpd/conf/my-ca/www.toto.com.crt SSLCertificateKeyFile /etc/httpd/conf/my-ca/www.toto.com.key SSLCACertificateFile /etc/httpd/conf/my-ca/myCA.crt SSLCARevocationFile /etc/httpd/conf/my-ca/myCA-crl.pem
SSLProtocol -SSLv2 -SSLv3 +TLSv1 SSLHonorCipherOrder on SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-RC4-SHA:RC4-SHA:TLSv1:!AES128:!3DES:!CAMELLIA:!SSLv2:HIGH:MEDIUM:!MD5:!LOW:!EXP:!NULL:!aNULL SSLInsecureRenegotiation ON ServerName www.toto.com DocumentRoot /var/www/htdocs
ErrorLog /var/logs/ssl_error_log CustomLog /var/logs/ssl_access_log combined
<Location /> SSLRequireSSL SSLVerifyClient optional SSLVerifyDepth 5 SSLOptions OptRenegotiate SSLRequire %{REMOTE_ADDR} eq "192.168.1.1" or ( %{SSL_CLIENT_S_DN_O} eq "MyCompany" and %{SSL_CLIENT_S_DN_OU} eq "MySection" )
</Location>
</VirtualHost>
Une idée ?
Cordialement, Zentoo
Bonjour,
T'as essayé RedirectPermanent??
<VirtualHost xxxxxxx:80> RedirectPermanent / https://toto.com/ </VirtualHost>
Le 13 mars 2013 18:08, Jean-Francois Maeyhieux b4b1@free.fr a écrit :
Bonjour,
je rencontre un problème de configuration d'un vhost apache (2.2).
Mon but est de pouvoir acceder au site web uniquement en SSL soit en présentant un certificat client soit en venant d'une IP donnée.
Mon vhost actuel ne me permet pas d'acceder directement en SSL via l'IP sans présenter de certificat. La partie certificat fonctionnant parfaitement.
J'ai bien pensé à un 'Satisfy Any' mais comment y intégrer la notion de certificat SSL ?
J'ai épluché la documentation apache et utiliser google à tout va mais je n'ai pas trouvé de configuration par IP ou certificat UNIQUEMENT par SSL.
Note: la directive 'SSLVerifyClient optional' est incompatible avec au moins IE 8.
Voici ç quoi ressemble mon vhost:
(192.168.1.1 sera remplacé par des IP publiques donc pas de solution HTTP/IP+HTTPS/certificat possible)
<VirtualHost x.x.x.x:443> SSLEngine on
SSLCertificateFile /etc/httpd/conf/my-ca/www.toto.com.crt SSLCertificateKeyFile /etc/httpd/conf/my-ca/www.toto.com.key SSLCACertificateFile /etc/httpd/conf/my-ca/myCA.crt SSLCARevocationFile /etc/httpd/conf/my-ca/myCA-crl.pem SSLProtocol -SSLv2 -SSLv3 +TLSv1 SSLHonorCipherOrder on SSLCipherSuite
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-RC4-SHA:RC4-SHA:TLSv1:!AES128:!3DES:!CAMELLIA:!SSLv2:HIGH:MEDIUM:!MD5:!LOW:!EXP:!NULL:!aNULL SSLInsecureRenegotiation ON
ServerName www.toto.com DocumentRoot /var/www/htdocs ErrorLog /var/logs/ssl_error_log CustomLog /var/logs/ssl_access_log combined <Location /> SSLRequireSSL SSLVerifyClient optional SSLVerifyDepth 5 SSLOptions OptRenegotiate SSLRequire %{REMOTE_ADDR} eq "192.168.1.1" or
( %{SSL_CLIENT_S_DN_O} eq "MyCompany" and %{SSL_CLIENT_S_DN_OU} eq "MySection" )
</Location>
</VirtualHost>
Une idée ?
Cordialement, Zentoo
Liste de diffusion du FRsAG http://www.frsag.org/
On Wed, 2013-03-13 at 23:43 +0100, ANIS El Achèche wrote:
Bonjour,
T'as essayé RedirectPermanent??
<VirtualHost xxxxxxx:80> RedirectPermanent / https://toto.com/ </VirtualHost>
Non, car cela n'a aucun rapport avec mon problème. Je pensais avoir expliquer le problème clairement. Apparemment non.
Merci.
Zentoo
Le 13 mars 2013 18:08, Jean-Francois Maeyhieux b4b1@free.fr a écrit : Bonjour,
je rencontre un problème de configuration d'un vhost apache (2.2). Mon but est de pouvoir acceder au site web uniquement en SSL soit en présentant un certificat client soit en venant d'une IP donnée.
Alors si l'IP est connue tu peux éventuellement faire une règle iptables qui redirige sur un autre port de ton serveur apache par exemple avec ça *iptables -t nat -A PREROUTING -s 192.168.1.1 -p tcp --dport 443 -j REDIRECT --to-ports 4443*
et sur ce port tu sert un configuration de vhost differente
comme ça par défaut tout arrive sur le vhost avec les certificats client et pour l'ip donnée tu mets la config comme tu l'entends
ce serait acceptable ? Seb.
Le 13 mars 2013 18:08, Jean-Francois Maeyhieux <b4b1@free.fr mailto:b4b1@free.fr> a écrit :
Bonjour,
je rencontre un problème de configuration d'un vhost apache (2.2).
Mon but est de pouvoir acceder au site web uniquement en SSL soit en présentant un certificat client soit en venant d'une IP donnée.
Mon vhost actuel ne me permet pas d'acceder directement en SSL via l'IP sans présenter de certificat. La partie certificat fonctionnant parfaitement.
J'ai bien pensé à un 'Satisfy Any' mais comment y intégrer la notion de certificat SSL ?
J'ai épluché la documentation apache et utiliser google à tout va mais je n'ai pas trouvé de configuration par IP ou certificat UNIQUEMENT par SSL.
Note: la directive 'SSLVerifyClient optional' est incompatible avec au moins IE 8.
Voici ç quoi ressemble mon vhost:
(192.168.1.1 sera remplacé par des IP publiques donc pas de solution HTTP/IP+HTTPS/certificat possible)
<VirtualHost x.x.x.x:443> SSLEngine on
SSLCertificateFile /etc/httpd/conf/my-ca/www.toto.com.crt SSLCertificateKeyFile /etc/httpd/conf/my-ca/www.toto.com.key SSLCACertificateFile /etc/httpd/conf/my-ca/myCA.crt SSLCARevocationFile /etc/httpd/conf/my-ca/myCA-crl.pem
SSLProtocol -SSLv2 -SSLv3 +TLSv1 SSLHonorCipherOrder on SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-RC4-SHA:RC4-SHA:TLSv1:!AES128:!3DES:!CAMELLIA:!SSLv2:HIGH:MEDIUM:!MD5:!LOW:!EXP:!NULL:!aNULL SSLInsecureRenegotiation ON
ServerName www.toto.com http://www.toto.com DocumentRoot /var/www/htdocs
ErrorLog /var/logs/ssl_error_log CustomLog /var/logs/ssl_access_log combined
<Location /> SSLRequireSSL SSLVerifyClient optional SSLVerifyDepth 5 SSLOptions OptRenegotiate SSLRequire %{REMOTE_ADDR} eq "192.168.1.1" or ( %{SSL_CLIENT_S_DN_O} eq "MyCompany" and %{SSL_CLIENT_S_DN_OU} eq "MySection" )
</Location>
</VirtualHost>
Une idée ?
Cordialement, Zentoo
_______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Vu qu'apparemment ce que je veux faire est impossible au niveau apache, du moins sur un seul vhost sans utiliser iptables ou un proxy.
Cette solution est fonctionelle et resoud le problème effectivement.
Par contre cela crée une dépendance entre une règle iptable et apache et une autre dépendance entre 2 vhosts.
Un grand merci à toi pour cette solution viable et acceptable ^^
Zentoo
On Thu, 2013-03-14 at 13:00 +0100, Sebastien Caps wrote:
Alors si l'IP est connue tu peux éventuellement faire une règle iptables qui redirige sur un autre port de ton serveur apache par exemple avec ça *iptables -t nat -A PREROUTING -s 192.168.1.1 -p tcp --dport 443 -j REDIRECT --to-ports 4443*
et sur ce port tu sert un configuration de vhost differente
comme ça par défaut tout arrive sur le vhost avec les certificats client et pour l'ip donnée tu mets la config comme tu l'entends
ce serait acceptable ? Seb.
Le 13 mars 2013 18:08, Jean-Francois Maeyhieux <b4b1@free.fr mailto:b4b1@free.fr> a écrit :
Bonjour, je rencontre un problème de configuration d'un vhost apache (2.2). Mon but est de pouvoir acceder au site web uniquement en SSL soit en présentant un certificat client soit en venant d'une IP donnée. Mon vhost actuel ne me permet pas d'acceder directement en SSL via l'IP sans présenter de certificat. La partie certificat fonctionnant parfaitement. J'ai bien pensé à un 'Satisfy Any' mais comment y intégrer la notion de certificat SSL ? J'ai épluché la documentation apache et utiliser google à tout va mais je n'ai pas trouvé de configuration par IP ou certificat UNIQUEMENT par SSL. Note: la directive 'SSLVerifyClient optional' est incompatible avec au moins IE 8. Voici ç quoi ressemble mon vhost: (192.168.1.1 sera remplacé par des IP publiques donc pas de solution HTTP/IP+HTTPS/certificat possible) <VirtualHost x.x.x.x:443> SSLEngine on SSLCertificateFile /etc/httpd/conf/my-ca/www.toto.com.crt SSLCertificateKeyFile /etc/httpd/conf/my-ca/www.toto.com.key SSLCACertificateFile /etc/httpd/conf/my-ca/myCA.crt SSLCARevocationFile /etc/httpd/conf/my-ca/myCA-crl.pem SSLProtocol -SSLv2 -SSLv3 +TLSv1 SSLHonorCipherOrder on SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-RC4-SHA:RC4-SHA:TLSv1:!AES128:!3DES:!CAMELLIA:!SSLv2:HIGH:MEDIUM:!MD5:!LOW:!EXP:!NULL:!aNULL SSLInsecureRenegotiation ON ServerName www.toto.com <http://www.toto.com> DocumentRoot /var/www/htdocs ErrorLog /var/logs/ssl_error_log CustomLog /var/logs/ssl_access_log combined <Location /> SSLRequireSSL SSLVerifyClient optional SSLVerifyDepth 5 SSLOptions OptRenegotiate SSLRequire %{REMOTE_ADDR} eq "192.168.1.1" or ( %{SSL_CLIENT_S_DN_O} eq "MyCompany" and %{SSL_CLIENT_S_DN_OU} eq "MySection" ) </Location> </VirtualHost> Une idée ? Cordialement, Zentoo _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Ça dépend de ton apache. Avec apache 2.4 il faut utiliser Require tout court à la place de SSLRequire Du coup le satisfy any + allow from + Require doit correspondre à ce que tu cherche.
Et ne pas oublier que la renégociation est indispensable pour que ça marche, ce qui veut dire que les client qui la désactivent (faille ssl connue -> beaucoup de monde) ne pourront pas se connecter.
Sinon tu peux faire un site avec 2 vhost quasi identiques sans renego, l'un avec authent, l'autre sans. Et tu redirige ceux qui arrivent sur le site sans authent mais depuis la mauvaise ip vers le site avec authent.
Benoit
Le 2013-03-14 17:33, Jean-Francois Maeyhieux a écrit :
Vu qu'apparemment ce que je veux faire est impossible au niveau apache, du moins sur un seul vhost sans utiliser iptables ou un proxy.
Cette solution est fonctionelle et resoud le problème effectivement.
Par contre cela crée une dépendance entre une règle iptable et apache et une autre dépendance entre 2 vhosts.
Un grand merci à toi pour cette solution viable et acceptable ^^
Zentoo
On Thu, 2013-03-14 at 13:00 +0100, Sebastien Caps wrote:
Alors si l'IP est connue tu peux éventuellement faire une règle iptables qui redirige sur un autre port de ton serveur apache par exemple avec ça *iptables -t nat -A PREROUTING -s 192.168.1.1 -p tcp --dport 443 -j REDIRECT --to-ports 4443*
et sur ce port tu sert un configuration de vhost differente
comme ça par défaut tout arrive sur le vhost avec les certificats client et pour l'ip donnée tu mets la config comme tu l'entends
ce serait acceptable ? Seb.
Le 13 mars 2013 18:08, Jean-Francois Maeyhieux <b4b1@free.fr mailto:b4b1@free.fr> a écrit :
Bonjour, je rencontre un problème de configuration d'un vhost apache
(2.2).
Mon but est de pouvoir acceder au site web uniquement en SSL soit
en présentant un certificat client soit en venant d'une IP donnée.
Mon vhost actuel ne me permet pas d'acceder directement en SSL
via l'IP sans présenter de certificat. La partie certificat fonctionnant parfaitement.
J'ai bien pensé à un 'Satisfy Any' mais comment y intégrer la
notion de certificat SSL ?
J'ai épluché la documentation apache et utiliser google à tout va
mais je n'ai pas trouvé de configuration par IP ou certificat UNIQUEMENT par SSL.
Note: la directive 'SSLVerifyClient optional' est incompatible
avec au moins IE 8.
Voici ç quoi ressemble mon vhost: (192.168.1.1 sera remplacé par des IP publiques donc pas de
solution HTTP/IP+HTTPS/certificat possible)
<VirtualHost x.x.x.x:443> SSLEngine on SSLCertificateFile
/etc/httpd/conf/my-ca/www.toto.com.crt SSLCertificateKeyFile /etc/httpd/conf/my-ca/www.toto.com.key SSLCACertificateFile /etc/httpd/conf/my-ca/myCA.crt SSLCARevocationFile /etc/httpd/conf/my-ca/myCA-crl.pem
SSLProtocol -SSLv2 -SSLv3 +TLSv1 SSLHonorCipherOrder on SSLCipherSuite
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-RC4-SHA:RC4-SHA:TLSv1:!AES128:!3DES:!CAMELLIA:!SSLv2:HIGH:MEDIUM:!MD5:!LOW:!EXP:!NULL:!aNULL SSLInsecureRenegotiation ON
ServerName www.toto.com <http://www.toto.com> DocumentRoot /var/www/htdocs ErrorLog /var/logs/ssl_error_log CustomLog /var/logs/ssl_access_log combined <Location /> SSLRequireSSL SSLVerifyClient optional SSLVerifyDepth 5 SSLOptions OptRenegotiate SSLRequire %{REMOTE_ADDR} eq "192.168.1.1" or ( %{SSL_CLIENT_S_DN_O} eq "MyCompany" and %{SSL_CLIENT_S_DN_OU}
eq "MySection" )
</Location> </VirtualHost> Une idée ? Cordialement, Zentoo _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Liste de diffusion du FRsAG http://www.frsag.org/
Le 13/03/2013 18:08, Jean-Francois Maeyhieux a écrit :
Bonjour,
je rencontre un problème de configuration d'un vhost apache (2.2).
Mon but est de pouvoir acceder au site web uniquement en SSL soit en présentant un certificat client soit en venant d'une IP donnée.
Mon vhost actuel ne me permet pas d'acceder directement en SSL via l'IP sans présenter de certificat. La partie certificat fonctionnant parfaitement.
J'ai bien pensé à un 'Satisfy Any' mais comment y intégrer la notion de certificat SSL ?
J'ai épluché la documentation apache et utiliser google à tout va mais je n'ai pas trouvé de configuration par IP ou certificat UNIQUEMENT par SSL.
Note: la directive 'SSLVerifyClient optional' est incompatible avec au moins IE 8.
Voici ç quoi ressemble mon vhost:
(192.168.1.1 sera remplacé par des IP publiques donc pas de solution HTTP/IP+HTTPS/certificat possible)
<VirtualHost x.x.x.x:443> SSLEngine on
SSLCertificateFile /etc/httpd/conf/my-ca/www.toto.com.crt SSLCertificateKeyFile /etc/httpd/conf/my-ca/www.toto.com.key SSLCACertificateFile /etc/httpd/conf/my-ca/myCA.crt SSLCARevocationFile /etc/httpd/conf/my-ca/myCA-crl.pem SSLProtocol -SSLv2 -SSLv3 +TLSv1 SSLHonorCipherOrder on SSLCipherSuite
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-RC4-SHA:RC4-SHA:TLSv1:!AES128:!3DES:!CAMELLIA:!SSLv2:HIGH:MEDIUM:!MD5:!LOW:!EXP:!NULL:!aNULL SSLInsecureRenegotiation ON
ServerName www.toto.com DocumentRoot /var/www/htdocs
ErrorLog /var/logs/ssl_error_log CustomLog /var/logs/ssl_access_log combined <Location /> SSLRequireSSL SSLVerifyClient optional SSLVerifyDepth 5 SSLOptions OptRenegotiate SSLRequire %{REMOTE_ADDR} eq "192.168.1.1" or
( %{SSL_CLIENT_S_DN_O} eq "MyCompany" and %{SSL_CLIENT_S_DN_OU} eq "MySection" )
</Location>
</VirtualHost>
Une idée ?
Ce bug report aide-t-il par rapport à la directive SSLVerifyClient
https://bugzilla.redhat.com/show_bug.cgi?id=610095
Cordialement,
Oui mais ce problème est secondaire par rapport a ma probématique. On peut utiliser la directive 'SSLInsecureRenegotiation ON' pour obtenir la comptaibilité avec les navigateurs Microsoft mais malheureusement au détriment de la sécurité.
Zentoo
Ce bug report aide-t-il par rapport à la directive SSLVerifyClient
https://bugzilla.redhat.com/show_bug.cgi?id=610095
Cordialement, _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/