...
Configuration de Apache
Insérer dans /etc/httpd/httpdconf.d/proxy_ajp.conf les lignes suivantes :
Bloc de code |
---|
# # Just a proxy to Tomcat. # <Location /> ProxyPass :ProxyPass / ajp://cas-kerb.univ-rennes1.fr:8009/ min=0 max=100 smax=50 ttl=10 </Directory> |
Configuration de Tomcat
S'assurer que le connecteur AJP sur le port 8009 n'est décommenté pas commenté et a bien le paramètres tomcatAuthentication positionné à false :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<Connector port="8009" debug="0" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" tomcatAuthentication="false" /> |
Test
Le Après redémarrage de Apache et Tomcat, le serveur CAS doit désormais répondre sur l'URL https://cas-kerb.univ-rennes1.fr (sur le port 80 par défaut en HTTP).
Passage en HTTPS
Configuration de Apache
Installer le certificat du serveur en éditant /etc/httpd/conf.d/ssl.conf et modifier les lignes suivantes dans le virtual host _default_:443 :
Bloc de code |
---|
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateFile /etc/pki/tls/private/cas.ifsic-kerb.univ-rennes1.fr.pem #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateKeyFile /etc/pki/tls/private/cas-kerb.ifsic.univ-rennes1.fr.key |
Ajouter la ligne suivante pour indiquer à Apache de passer les requêtes à Tomcat :
Bloc de code |
---|
ProxyPass / ajp://cas.ifsic.univ-rennes1.fr:8009/ min=0 max=100 smax=50 ttl=10 route=ori-indexing |
Le connecteur HTTPS sur le port 8443 peut être commenté.
Test
Le serveur CAS doit désormais répondre sur l'URL https://cas.ifsic.univ-rennes1.fr (sur le port 443 par défaut en HTTPS).
Passage en HTTPS
Génération du keystore
Rapatrier Jetty (par exemple dans /usr/local) depuis http://static.roopindersingh.com/jetty-6.1.7.jar .
Copier les clés publique (cas.ifsic.univ-rennes1.fr.pem) et privée (cas.ifsic.univ-rennes1.fr.key) dans /etc/pki/tls/private pour générer le keystore dans /etc/tomcat5 (en donnant comme mot de passe changeit) :
Bloc de code |
---|
[root@cas private]# openssl pkcs12 -export \
-out cas.ifsic.univ-rennes1.fr.pkcs12 \
-in cas.ifsic.univ-rennes1.fr.pem \
-inkey cas.ifsic.univ-rennes1.fr.key
Enter Export Password:
Verifying - Enter Export Password:
[root@cas private]# java -cp /usr/local/jetty-6.1.7.jar org.mortbay.jetty.security.PKCS12Import \
cas.ifsic.univ-rennes1.fr.pkcs12 /etc/tomcat5/cas.ifsic.univ-rennes1.fr.keystore
Enter input keystore passphrase: changeit
Enter output keystore passphrase: changeit
Alias 0: 1
Adding key for alias 1
[root@cas private]# |
Régler les permissions du keystore :
Bloc de code |
---|
[root@cas private]# cd /etc/tomcat5/
[root@cas tomcat5]# chgrp tomcat cas.ifsic.univ-rennes1.fr.keystore
[root@cas tomcat5]# chmod 640 cas.ifsic.univ-rennes1.fr.keystore
[root@cas tomcat5]# |
Configuration de Tomcat
Dans /etc/tomcat5/server.xml, commenter le connecteur HTTP sur le port 8080 et décommenter le connecteur HTTPS sur le port 8443 en ajoutant l'attribut :
Bloc de code |
---|
keystoreFile="/etc/tomcat5/cas.ifsic.univ-rennes1.fr.keystore" |
Test
Test
Après redémarrage de Apache, le serveur CAS doit désormais répondre sur l'URL Redémarrer Tomcat, désactiver si nécessaire le firewall pour le port 8443 et tester https://cas.ifsic.univ-rennes1.fr:8443 (user = test, password = test (sur le port 443 par défaut en HTTPS).
Ajout de l'authentification LDAP
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler" > <property name="filter" value="uid=%u,ou=people,dc=univ-rennes1,dc=fr" /> <property name="contextSource" ref="contextSource" /> </bean> |
Test
Redéployer le serveur CAS et tester l'authentification d'un utilisateur LDAP.
...
Astuce |
---|
On peut également ajouter l'option debug=true pour obtenir des informations dans catalina.out. |
Configuration de Tomcat
Il faut passer à la JVM qui exécute Tomcat l'option -Djavax.security.auth.useSubjectCredsOnly=false, par exemple en éditant le fichier /etc/tomcat5/tomcat5.conf et en ajoutant la ligne suivante :
Bloc de code |
---|
JAVA_OPTS="$JAVA_OPTS -Djavax.security.auth.useSubjectCredsOnly=false" |
Test
Un navigateur bien configuré et possédant des credentials Kerberos valides doit maintenant se connecter au serveur CAS sans aucune interaction....