Mit openssl ist es wirklich einfach ein eigenes SSL Zertifikat und CSRs zu erstellen. Für Multi Domain Zertifikate muss jedoch auf konfigurations-Dateien zurückgegriffen werden.
Auch diese konfiguratios-Dateien sind nicht besonders kompliziert.
Eine Beispiel Konfigurationsdatei:
# OpenSSL konfiguration zum erstellen eines neuen Key mit CSR für x509v3 # multidomain Zertifikat # # openssl req -config bla.cnf -new | tee csr.pem # oder # openssl req -config bla.cnf -new -out csr.pem [ req ] default_bits = 4096 default_md = sha512 default_keyfile = key.pem prompt = no encrypt_key = no # base request distinguished_name = req_distinguished_name # extensions req_extensions = v3_req # distinguished_name [ req_distinguished_name ] countryName = "DE" # C= stateOrProvinceName = "Berlin" # ST= localityName = "Firmenname" # L= postalCode = "13189" # L/postalcode= streetAddress = "Strasse 91" # L/street= organizationName = "Firma" # O= organizationalUnitName = "IT Department" # OU= commonName = "example.com" # CN= emailAddress = "webmaster@example.com" # CN/emailAddress= # Erweiterte Einstellungen [ v3_req ] # In der alternativen Namenerweiterung sind verschiedene Werte erlaubt: # http://www.openssl.org/docs/apps/x509v3_config.html subjectAltName = DNS:www.example.com,DNS:www2.example.com # multidomain certificate # vim:ft=config
In diesem Beispiel werden als Domain „example.com“, „www.example.com“ und „www2.example.com“ validiert. Selbstverständlich könnten auch andere Domains angegeben sein.
$ openssl req -config bla.cnf -new -out csr.pem Generating a 4096 bit RSA private key ..........................................................................++ .................................................................++ writing new private key to 'key.pem' -----
Bei diesem Aufruf wird der Private Schlüssel key.pem und der CRS (Zertifikatsanfrage)csr.pem erstellt.
Diese Anleitung ist durch Lets Encrypt eigentlich überflüssig geworden. Um lokal genutzte Zertifikate und Testumgebungen zu unterstützen bleibt diese Anleitung erhalten.