Générer une CSR avec OpenSSL pour Apache

Une commande OpenSSL génère la clé privée et la CSR. Elle fonctionne de la même manière sur Apache, nginx et tout serveur Linux.

Prérequis

OpenSSL doit être installé sur le serveur (openssl version). Travaillez en tant que root (sudo -i) dans un répertoire protégé, par exemple /etc/apache2/ssl sous Debian ou Ubuntu :

umask 077
mkdir -p /etc/apache2/ssl && cd /etc/apache2/ssl

Générer la clé et la CSR (RSA 2048)

openssl req -new -newkey rsa:2048 -nodes \
  -keyout www.exemple.fr.key -out www.exemple.fr.csr \
  -subj "/C=FR/ST=Rhone/L=Lyon/O=Exemple SARL/CN=www.exemple.fr"

Adaptez le nom de domaine, la raison sociale, la ville, la région et le pays. Pour un certificat wildcard, utilisez CN=*.exemple.fr et nommez les fichiers sans le caractère * (par exemple wildcard.exemple.fr.key). Les champs sont expliqués dans la page générale sur la CSR.

Variante : clé ECDSA P-256

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes \
  -keyout www.exemple.fr-ecdsa.key -out www.exemple.fr-ecdsa.csr \
  -subj "/C=FR/ST=Rhone/L=Lyon/O=Exemple SARL/CN=www.exemple.fr"

Vérifier la CSR

openssl req -in www.exemple.fr.csr -noout -verify -subject

La commande affiche verify OK puis le sujet. Contrôlez que le nom commun est exact.

Protéger la clé et transmettre la CSR

chmod 600 www.exemple.fr.key
cat www.exemple.fr.csr

Copiez le contenu complet de la CSR, de -----BEGIN CERTIFICATE REQUEST----- à -----END CERTIFICATE REQUEST-----, dans le formulaire de configuration de votre certificat, depuis votre espace client. Conservez le fichier .key : sans lui, le certificat reçu est inutilisable et il faut recommencer.

Étape suivante : installer le certificat sur Apache.