Ceci est une ancienne révision du document !


EJBCA - Création de certificats TLS

CréationNicolas THOREZ 2024/03/20 17:03

Grâce à nos autorités de certification, nous avons la possibilité de créer des certificats TLS pour nos serveurs webs. Ces certificats et le fait que les autorités sont reconnues par les postes clients permettent de se passer des certificats auto-signés et par extensions, suppriment les messages d'erreurs lors de l'accès à des sites auto-signés :

On va donc voir comment créer un modèle de certificat TLS et les détails de la création de certificats pour des serveurs webs.

Réf. : EJBCA

  • Sur l'interface d'administration, dans la section CA Functions, on va dans Certificate Profiles et on clone le profil par défaut SERVER :
  • On nomme le modèle et on le créé en cliquant sur Create from template :
  • On édite le modèle fraichement créé via son bouton Edit :
  • On commence par définir :
    • Available Key Algorithms : ECDSA
    • Available ECDSA curves : P-256 / prime256v1 / secp256r1
    • Signature Algorithm : Inherit from Issuing CA
    • Validity or end date of the certificate : 1y
    • Expriration Restriction : On coche la cae Use… puis dans la section suivante, on coche les cases :
      • Monday
      • Friday
      • Saturday
      • Sunday
    • Profile Description : Optionnel, permet de mieux identifier le modèle.
  • Dans la section X.509v3 extensions, on décoche :
    • Basic Constraints
  • Dans la section X.509v3 extensions - Usages, on coche :
    • Key Usage
    • Digital Signature
    • Key encipherment
    • Dans Extended Key Usage, on choisira :
      • Server Authentication
  • Dans la section X.509v3 extensions - Names, :
    • on coche Subject Alternative Name
    • on décoche Issuer Alternative Name
  • Dans la section X.509v3 extensions - Validation data, on coche :
    • CRL Distribution Points
    • Use CA defined CRL Distribution Point
    • Authority Information Access :
    • Use CA defined OCSP locator
    • Use CA defined CA issuer
  • Dans la section Other Data :
    • on décoche LDAP DN order
    • dans la partie Available CAs, on sélectionne notre autorité intermédiaire.
    • on sauvegarde le tout en cliquant sur Save
  • On va désormais dans la menu RA Functions, End Entity Profiles et dans la section Add End Entity Profile, on nomme notre modèle et on l'ajoute ajoute en cliquant sur Add Profile :
  • On sélectionne notre nouveau profil dans la liste et on l'édite :
  • On commence par décocher End Entity E-mail, on peut aussi ajouter si on le souhaite une description :
  • Dans la section Subject DN Attributes, on sélectionnes dans le menu déroulant et on ajoute à la suite de CN, Common name déjà présent avec le bouton Add :
    • O, Organization : on indiquera le nom de notre organisation et on cochera Required uniquement
    • C, Country (ISO 3166) : on indiquera le code du pays de l'organisation et on cochera Required uniquement
  • Pour CN, Common name, on cochera Required et Modifiable
  • Dans la section Other Subject Attributes, pour l'attribut Subject Alternative Name, on ajoutera DNS Name et on cochera Use entity CN field :
  • Dans la section Main Certificate Data, on choisira :
    • pour Default Certificate Profile : le profil TLS précédemment créé
    • pour Default CAs : l'autorité intermédiaire précédemment créée
    • pour Default Token : User Generated
    • pour Available Tokens : User Generated et PEM file
  • Puis on sauvegarde le tout avec le bouton Save en bas de la page :

Opérationnel

Voilà, notre autorité de certification est configurée et opérationnelle pour la délivrance de certificat TLS pour nos serveurs webs internes. Il ne reste plus qu'à créer ces fameux certificats. Pour cela, nous avons deux possibilités :
  • Via l'interface web
  • Via des appels API
  • On commence en ligne de commande par créer une configuration pour openssl :

nano /tmp/openssl.conf

[ req ]
default_md = sha256
prompt = no
distinguished_name = dn

[ dn ]
CN = <FQDN du serveur pour lequel on souhaite créer un certificat>
O = <Mon organisation>
C = <Pays de mon organisation>
  • On crée un clé privée :

openssl ecparam -genkey -name prime256v1 -out <fqdn>.key

  • On crée une requête de certification :

openssl req -new -key <fqdn>.key -config /tmp/openssl.conf

  • On copie cette requête et on va sur l'interface de gestion, soit via l'interface d'administration en cliquant sur le menu RA Web (tout en bas des menus), soit directement via l'adresse https://<ejbca-address>/ejbca/ra.
  • Une fois sur l'interface, on clique sur Make New Request :
  • On sélectionne :
    • Notre profil de certificat TLS
    • Notre profil de certification pour du TLS
    • On choisit Provided by user
    • On colle notre requête créée en ligne commande dans Upload CSR
    • On clique sur Upload CSR
  • On trouve alors le résumé de notre requête. On ajoutera dans le champs Username de la section Provide User Credentials, le FQDN principale pour ce certificat puis on pourra le télécharger en cliquant sur un des boutons de téléchargement situé en bas de page, chacun correspondant à un type précis de certificat (selon les besoin de votre serveur web donc) :

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • ejbca_tls.1711016725.txt.gz
  • Dernière modification : 2024/03/21 11:25
  • de nekan