2 votes

Domaines et sous-domaines virtuels avec différents certificats SSL

J'ai un domaine : www.example.com et j'ai besoin que ce domaine soit accessible à la fois via https et http.
J'ai un certificat (GeoTrust) qui protège www.example.com et exemple.com.

Je dois aussi protéger app.example.com.
app.example.com est quelque chose qui doit être accessible UNIQUEMENT via https, mais il n'a pas besoin d'un certificat approprié : un certificat auto-signé est suffisant.

J'ai essayé de nombreuses configurations différentes (même en utilisant le même certificat pour le domaine principal et le sous-domaine), mais rien n'a fonctionné !
La configuration suivante est la dernière que j'ai essayée mais le résultat est que si je me connecte à app.example.com, il me dit que la connexion n'est pas fiable et ensuite, une fois acceptée, il me redirige vers www.example.com !

Une aide ? Merci.

    <VirtualHost *:80>
        DocumentRoot "/var/websiteexample/public/www"
        ServerName www.example.com
        ServerAlias example.com
        <Directory "/var/websiteexample/public/www">
            allow from all
            Options +Indexes
        </Directory>
    </VirtualHost>

    <VirtualHost *:443>
        DocumentRoot "/var/websiteexample/public/www"
        ServerName www.example.com
        ServerAlias example.com
        SSLEngine on
        SSLCertificateFile /root/www.example.com.crt
        SSLCertificateKeyFile /root/www.example.com.key
        <Directory "/var/websiteexample/public/www">
            allow from all
            Options +Indexes
        </Directory>
    </VirtualHost>

    <VirtualHost *:443>
        DocumentRoot "/path/to/another/app"
        ServerName app.example.com
        SSLEngine on
        SSLCertificateFile /root/app.example.com.pem
        <Directory "/path/to/another/app">
            allow from all
            Options +Indexes
        </Directory>
    </VirtualHost>

4voto

john Points 11
  • ajouté SSLEngine on à serverconfig
  • ajouté SSLStrictSNIVHostCheck on à serverconfig - SNI pour plusieurs certificats, exclure les clients non capables de SNI
  • ajouté SSLCertificateKeyFile /root/app.example.com.key - vous avez besoin d'une clé privée pour les deux vhosts

Voici la nouvelle configuration :

SSLEngine on
SSLStrictSNIVHostCheck on
SSLProtocol -ALL +SSLv3 +TLSv1
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:-MEDIUM

<VirtualHost *:80>
    DocumentRoot "/var/websiteexample/public/www"
    ServerName www.example.com
    ServerAlias example.com
    <Directory "/var/websiteexample/public/www">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot "/var/websiteexample/public/www"
    ServerName www.example.com
    ServerAlias example.com
    #You might also need: SSLCertificateChainFile 
    SSLCertificateFile /root/www.example.com.crt
    SSLCertificateKeyFile /root/www.example.com.key
    <Directory "/var/websiteexample/public/www">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot "/path/to/another/app"
    ServerName app.example.com
    SSLCertificateFile /root/app.example.com.pem
    SSLCertificateKeyFile /root/app.example.com.key
    <Directory "/path/to/another/app">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

-1voto

Daniel Hilgarth Points 133

Vous ne pouvez pas faire de vhosting basé sur le nom avec SSL car le nom provient de l'en-tête "Host :", qui fait partie de ce qui est crypté. Vous devriez choisir la clé avant de savoir quelle clé choisir.

En général, on utilise une adresse IP supplémentaire pour chaque paire de clés unique. Vous trouverez d'excellents exemples et explications à l'adresse suivante http://wiki.apache.org/httpd/NameBasedSSLVHosts

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X