Ç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/