« EJBCA Pas à Pas » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
|||
(17 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 5 : | Ligne 5 : | ||
* Renommer le dossier '''/opt/jboss-x.x.x''' en '''/opt/jboss''' | * Renommer le dossier '''/opt/jboss-x.x.x''' en '''/opt/jboss''' | ||
* Editer le fichier '''/opt/jboss/bin/run.conf''' et changer les paramètres mémoire '''-Xms***m -Xmx***m''' etc... | * Editer le fichier '''/opt/jboss/bin/run.conf''' et changer les paramètres mémoire '''-Xms***m -Xmx***m''' etc... | ||
* Editer le fichier '''/opt/jboss/server/default/bootstrap/bindings.xml''' pour modifier (éventuellement) les ports 8080 et 8443 selon le besoin. Ne '''pas''' modifier les valeurs des ports dans la section des ''transform'' à la fin du fichier. | * Editer le fichier '''/opt/jboss/server/default/conf/bootstrap/bindings.xml''' ou '''/opt/jboss/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml''' pour modifier (éventuellement) les ports 8080 et 8443 selon le besoin. Ne '''pas''' modifier les valeurs des ports dans la section des ''transform'' à la fin du fichier. | ||
* Créer un nouvel utilisateur et groupe '''jboss''' avec la commande | * Créer un nouvel utilisateur et groupe '''jboss''' avec la commande | ||
useradd -r -U -d /opt/jboss jboss | useradd -r -U -d /opt/jboss jboss | ||
Ligne 12 : | Ligne 12 : | ||
* Il faudra se rappeler de réallouer tous les fichiers modifiés par root à l'utilisateur jboss, ou alors les modifications futures de fichiers devront se faire en tant qu'utilisateur jboss via: | * Il faudra se rappeler de réallouer tous les fichiers modifiés par root à l'utilisateur jboss, ou alors les modifications futures de fichiers devront se faire en tant qu'utilisateur jboss via: | ||
su - jboss | su - jboss | ||
* Créer un dossier de logs avec: | |||
mkdir /var/log/jboss | |||
chown jboss:jboss /var/log/jboss | |||
* Editer le nom du serveur smtp dans le fichier '''/opt/jboss/server/default/deploy/mail-service.xml''' | |||
* Sous gentoo il faut créer le fichier '''/etc/profile.d/jboss.sh''' avec le contenu: | |||
<pre> | |||
#!/bin/sh | |||
# export des variables d'environnement JBOSS_HOME | |||
export JBOSS_HOME=/opt/jboss | |||
# export de la variable d'environnement JBOSS_HOST | |||
export JBOSS_HOST=0.0.0.0 | |||
# Fichier de log Jboss | |||
export JBOSS_CONSOLE=/var/log/jboss/jboss.log | |||
# Utilisateur à utiliser pour démarrer jboss | |||
export JBOSSUS=jboss | |||
# Serveur jboss à utiliser | |||
export JBOSS_SERVER=default | |||
</pre> | |||
Puis il faut relancer son shell pour que les modifications prennent effet. | |||
== Script de lancement == | |||
Sur gentoo vous pouvez utiliser le fichier suivant (à sauvegarder dans '''/etc/init.d/jboss''') comme fichier de lancement: | |||
<pre> | |||
#!/bin/sh | |||
start(){ | |||
echo "starting jboss.." | |||
su -l jboss -c '/opt/jboss/bin/run.sh >> /var/log/jboss/log 2>> /var/log/jboss/errors &' | |||
} | |||
stop(){ | |||
echo "stopping jboss.." | |||
# su -l jboss -c '/opt/jboss/bin/shutdown.sh -S &' | |||
su -l jboss -c '/opt/jboss/bin/shutdown.sh -S' | |||
} | |||
restart(){ | |||
stop | |||
sleep 60 | |||
su -l jboss -c 'killall java' | |||
start | |||
} | |||
case "$1" in | |||
start) | |||
start | |||
;; | |||
stop) | |||
stop | |||
;; | |||
restart) | |||
restart | |||
;; | |||
*) | |||
echo "Usage: jboss {start|stop|restart}" | |||
exit 1 | |||
esac | |||
exit 0 | |||
</pre> | |||
== Options de sécurité == | == Options de sécurité == | ||
Ligne 19 : | Ligne 74 : | ||
* '''/opt/jboss/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml''' et dé-commenter la section: | * '''/opt/jboss/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml''' et dé-commenter la section: | ||
<pre> | <pre> | ||
<!DOCTYPE jboss-web PUBLIC | |||
"-//JBoss//DTD Web Application 5.0//EN" | |||
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> | |||
<jboss-web> | |||
<security-domain>java:/jaas/jmx-console</security-domain> | |||
</jboss-web> | |||
</pre> | </pre> | ||
* '''/opt/jboss/server/default/deploy/jmx-console.war/WEB-INF/web.xml''' et dé-commenter la section suivante: | * '''/opt/jboss/server/default/deploy/jmx-console.war/WEB-INF/web.xml''' et dé-commenter la section suivante: | ||
Ligne 125 : | Ligne 180 : | ||
</pre> | </pre> | ||
= Installer EJBCA = | |||
Une aide très utile se trouve dans ce [http://ejbca-fr.org/home/_media/documentation/installation_ejbca_debian.pdf?id=documentation%3Aejbca&cache=cache document] ([http://ejbca-fr.org/home/documentation/ejbca source]) et la documentation d'installation officielle se trouve sur la page [http://www.ejbca.org/installation.html ejbca] | |||
* Télécharger EJBCA depuis http://www.ejbca.org/download.html | |||
* Dé-zipper l'archive dans '''/opt''' | |||
* Renommer le dossier '''/opt/ejbca-x.x.x''' en '''/opt/ejbca''' | |||
* Sous gentoo il faut créer le fichier '''/etc/profile.d/ejbca.sh''' avec le contenu: | |||
#!/bin/sh | |||
# Ajout de la variable d'environnement pour EJBCA | |||
export EJBCA_HOME=/opt/ejbca | |||
Puis il faut relancer son shell pour que les modifications prennent effet. | |||
* Créer dans l'outil d'administration mysql un nouvel utilisateur '''ejbca''' et lui associer une nouvelle base de données '''ejbca''' | |||
* Télécharger la dernière version du driver JDBC mysql depuis http://dev.mysql.com/downloads/connector/j/5.1.html | |||
* Dé-zipper l'archive dans /tmp | |||
* Copier le fichier extrait '''mysql-connector-java-x.x.x-bin.jar''' dans le dossier '''/opt/jboss/server/default/lib/''' | |||
* Copier les librairies Bouncycastle de ejbca vers jboss: | |||
cp /opt/ejbca/lib/bc*.jar /opt/jboss/server/default/lib/ | |||
* Donner les droits au dossier ejbca à l'utilisateur jboss | |||
chown -R jboss:jboss /opt/ejbca | |||
* Il faudra se rappeler de réallouer tous les fichiers modifiés par root à l'utilisateur jboss, ou alors les modifications futures de fichiers devront se faire en tant qu'utilisateur jboss via: | |||
su - jboss | |||
=== Configuration === | |||
* Les fichiers de configuration se trouvent à un endroit centralisé | |||
cd /opt/ejbca/conf | |||
* Copier les version ''sample'' en version ''properties'': | |||
cp database.properties.sample database.properties | |||
cp mail.properties.sample mail.properties | |||
cp web.properties.sample web.properties | |||
cp ejbca.properties.sample ejbca.properties | |||
* Editer le fichier '''database.properties''' et configurer les accès à la base de données | |||
* Editer le fichier '''mail.properties''' et configurer le nom du serveur smtp et l'adresse de l'émetteur des emails | |||
* Editer le fichier '''web.properties''' et configurer les modifications (modifier uniquement les mots de passe) | |||
* Editer le fichier '''ejbca.properties''' et configurer la section ''Basic CA configuration'' et les mots de passe | |||
= | === Installation === | ||
* Vérifier que jboss est arrêté: | |||
/etc/init.d/jboss stop | |||
* Lancer le bootstrap en tant qu'utilisateur jboss: | |||
su - jboss | |||
cd /opt/ejbca | |||
ant clean | |||
ant bootstrap | |||
* Vérifier que jboss est démarré, puis '''attendre que le chargement soit fini en surveillant les logs''': | |||
/etc/init.d/jboss start | |||
tail -f /var/log/jboss/log | |||
* Lancer l'installation en tant qu'utilisateur jboss: | |||
su - jboss | |||
cd /opt/ejbca | |||
ant install | |||
* Si cette étape plante, pour pouvoir recommencer l'étape il faut nettoyer: | |||
** la base mysql (tout effacer) | |||
** les fichiers dans '''/opt/ejbca/p12''' | |||
* et en tant que ''root'': | |||
cd /opt/ejbca | |||
ant javatruststore | |||
chown -R jboss:jboss /opt/jboss/ | |||
* Arrêter jboss: | |||
/etc/init.d/jboss stop | |||
* Lancer la commande de déploiement en tant qu'utilisateur jboss: | |||
su - jboss | |||
cd /opt/ejbca | |||
ant deploy | |||
* Vous pouvez maintenant lancer jboss et vous connecter aux pages d'administration à l'aide du certificat stocké dans le dossier '''/opt/ejbca/p12''' |
Dernière version du 16 janvier 2010 à 21:02
Installer JBOSS
Des Instructions d'installation plus générales se trouvent ici
- Télécharger JBOSS depuis http://www.jboss.org/jbossas/downloads/
- Dé-zipper l'archive dans /opt
- Renommer le dossier /opt/jboss-x.x.x en /opt/jboss
- Editer le fichier /opt/jboss/bin/run.conf et changer les paramètres mémoire -Xms***m -Xmx***m etc...
- Editer le fichier /opt/jboss/server/default/conf/bootstrap/bindings.xml ou /opt/jboss/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml pour modifier (éventuellement) les ports 8080 et 8443 selon le besoin. Ne pas modifier les valeurs des ports dans la section des transform à la fin du fichier.
- Créer un nouvel utilisateur et groupe jboss avec la commande
useradd -r -U -d /opt/jboss jboss
- Associer tous les fichiers dans /opt/jboss à l'utilisateur jboss via
chown -R jboss:jboss /opt/jboss
- Il faudra se rappeler de réallouer tous les fichiers modifiés par root à l'utilisateur jboss, ou alors les modifications futures de fichiers devront se faire en tant qu'utilisateur jboss via:
su - jboss
- Créer un dossier de logs avec:
mkdir /var/log/jboss chown jboss:jboss /var/log/jboss
- Editer le nom du serveur smtp dans le fichier /opt/jboss/server/default/deploy/mail-service.xml
- Sous gentoo il faut créer le fichier /etc/profile.d/jboss.sh avec le contenu:
#!/bin/sh # export des variables d'environnement JBOSS_HOME export JBOSS_HOME=/opt/jboss # export de la variable d'environnement JBOSS_HOST export JBOSS_HOST=0.0.0.0 # Fichier de log Jboss export JBOSS_CONSOLE=/var/log/jboss/jboss.log # Utilisateur à utiliser pour démarrer jboss export JBOSSUS=jboss # Serveur jboss à utiliser export JBOSS_SERVER=default
Puis il faut relancer son shell pour que les modifications prennent effet.
Script de lancement
Sur gentoo vous pouvez utiliser le fichier suivant (à sauvegarder dans /etc/init.d/jboss) comme fichier de lancement:
#!/bin/sh start(){ echo "starting jboss.." su -l jboss -c '/opt/jboss/bin/run.sh >> /var/log/jboss/log 2>> /var/log/jboss/errors &' } stop(){ echo "stopping jboss.." # su -l jboss -c '/opt/jboss/bin/shutdown.sh -S &' su -l jboss -c '/opt/jboss/bin/shutdown.sh -S' } restart(){ stop sleep 60 su -l jboss -c 'killall java' start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo "Usage: jboss {start|stop|restart}" exit 1 esac exit 0
Options de sécurité
Pour sécuriser l'accès aux différentes consoles jboss, accessibles par défaut sur http://localhost:8080/ il faut éditer les fichiers suivants:
Sécuriser la console JMX
- /opt/jboss/server/default/conf/props/jmx-console-users.properties et modifier la ligne admin=admin en username=password
- /opt/jboss/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml et dé-commenter la section:
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> <jboss-web> <security-domain>java:/jaas/jmx-console</security-domain> </jboss-web>
- /opt/jboss/server/default/deploy/jmx-console.war/WEB-INF/web.xml et dé-commenter la section suivante:
<!-- A security constraint that restricts access to the HTML JMX console to users with the role JBossAdmin. Edit the roles to what you want and uncomment the WEB-INF/jboss-web.xml/security-domain element to enable secured access to the HTML JMX console. <security-constraint> <web-resource-collection> <web-resource-name>HtmlAdaptor</web-resource-name> <description>An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application </description> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>JBossAdmin</role-name> </auth-constraint> </security-constraint>
Sécuriser l'accès au status
- /opt/jboss/server/default/deploy/ROOT.war/WEB-INF/jboss-web.xml et y mettre le contenu:
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> <jboss-web> <security-domain>java:/jaas/jmx-console</security-domain> </jboss-web>
- jboss/server/default/deploy/ROOT.war/WEB-INF/web.xml et y ajouter les lignes:
<security-constraint> <web-resource-collection> <web-resource-name>HtmlAdaptor</web-resource-name> <description>An example security config that only allows users with the role JBossAdmin to access the status application </description> <url-pattern>/status</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>JBossAdmin</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>JBoss Status</realm-name> </login-config> <security-role> <role-name>JBossAdmin</role-name> </security-role>
Sécuriser la Web Console Java
- /opt/jboss/server/default/conf/props/web-console-users.properties et y mettre la ligne username=password
- /opt/jboss/server/default/conf/props/web-console-roles.properties et y mettre la ligne admin=JBossAdmin,HttpInvoker
- jboss/server/default/conf/login-config.xml et y mettre à jour le chemin vers web-console-users.properties en /props/web-console-users.properties, et de même pour web-console-roles.properties
- jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml et dé-commenter la ligne security-domain:
!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd"> <jboss-web> <security-domain>java:/jaas/web-console</security-domain> <!-- The war depends on the --> <depends>jboss.admin:service=PluginManager</depends> </jboss-web>
- /opt/jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml et dé-commenter la section:
<!-- A security constraint that restricts access to the HTML JMX console to users with the role JBossAdmin. Edit the roles to what you want and uncomment the WEB-INF/jboss-web.xml/security-domain element to enable secured access to the HTML JMX console. <security-constraint> <web-resource-collection> <web-resource-name>HtmlAdaptor</web-resource-name> <description>An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application </description> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>JBossAdmin</role-name> </auth-constraint> </security-constraint>
Installer EJBCA
Une aide très utile se trouve dans ce document (source) et la documentation d'installation officielle se trouve sur la page ejbca
- Télécharger EJBCA depuis http://www.ejbca.org/download.html
- Dé-zipper l'archive dans /opt
- Renommer le dossier /opt/ejbca-x.x.x en /opt/ejbca
- Sous gentoo il faut créer le fichier /etc/profile.d/ejbca.sh avec le contenu:
#!/bin/sh # Ajout de la variable d'environnement pour EJBCA export EJBCA_HOME=/opt/ejbca
Puis il faut relancer son shell pour que les modifications prennent effet.
- Créer dans l'outil d'administration mysql un nouvel utilisateur ejbca et lui associer une nouvelle base de données ejbca
- Télécharger la dernière version du driver JDBC mysql depuis http://dev.mysql.com/downloads/connector/j/5.1.html
- Dé-zipper l'archive dans /tmp
- Copier le fichier extrait mysql-connector-java-x.x.x-bin.jar dans le dossier /opt/jboss/server/default/lib/
- Copier les librairies Bouncycastle de ejbca vers jboss:
cp /opt/ejbca/lib/bc*.jar /opt/jboss/server/default/lib/
- Donner les droits au dossier ejbca à l'utilisateur jboss
chown -R jboss:jboss /opt/ejbca
- Il faudra se rappeler de réallouer tous les fichiers modifiés par root à l'utilisateur jboss, ou alors les modifications futures de fichiers devront se faire en tant qu'utilisateur jboss via:
su - jboss
Configuration
- Les fichiers de configuration se trouvent à un endroit centralisé
cd /opt/ejbca/conf
- Copier les version sample en version properties:
cp database.properties.sample database.properties cp mail.properties.sample mail.properties cp web.properties.sample web.properties cp ejbca.properties.sample ejbca.properties
- Editer le fichier database.properties et configurer les accès à la base de données
- Editer le fichier mail.properties et configurer le nom du serveur smtp et l'adresse de l'émetteur des emails
- Editer le fichier web.properties et configurer les modifications (modifier uniquement les mots de passe)
- Editer le fichier ejbca.properties et configurer la section Basic CA configuration et les mots de passe
Installation
- Vérifier que jboss est arrêté:
/etc/init.d/jboss stop
- Lancer le bootstrap en tant qu'utilisateur jboss:
su - jboss cd /opt/ejbca ant clean ant bootstrap
- Vérifier que jboss est démarré, puis attendre que le chargement soit fini en surveillant les logs:
/etc/init.d/jboss start tail -f /var/log/jboss/log
- Lancer l'installation en tant qu'utilisateur jboss:
su - jboss cd /opt/ejbca ant install
- Si cette étape plante, pour pouvoir recommencer l'étape il faut nettoyer:
- la base mysql (tout effacer)
- les fichiers dans /opt/ejbca/p12
- et en tant que root:
cd /opt/ejbca ant javatruststore chown -R jboss:jboss /opt/jboss/
- Arrêter jboss:
/etc/init.d/jboss stop
- Lancer la commande de déploiement en tant qu'utilisateur jboss:
su - jboss cd /opt/ejbca ant deploy
- Vous pouvez maintenant lancer jboss et vous connecter aux pages d'administration à l'aide du certificat stocké dans le dossier /opt/ejbca/p12