ARtisan Tech

SSL

HowTo | Erstellung selbstsigniertes SSL-Zert. ohne Passwort (CI/CD)

In dieser Anleitung erfahren Sie, wie Sie ein selbstsigniertes SSL-Zertifikat ohne Passwort erstellen und es in Ihrer CI/CD-Pipeline verwenden können. Dies kann hilfreich sein, wenn Sie eine sichere Verbindung zu einem Webserver oder einer anderen Anwendung herstellen möchten, ohne ein kostenpflichtiges Zertifikat von einer externen Zertifizierungsstelle erwerben zu müssen.

Beachten Sie jedoch: Die Verwendung eines selbstsignierten Zertifikats in einer Produktionsumgebung wird nicht empfohlen. Selbstsignierte Zertifikate werden nicht von allen Browsern und Anwendungen als vertrauenswürdig angesehen, und ihre Verwendung kann zu Sicherheitsproblemen führen. Diese Anleitung ist daher eher für Entwicklungs- und Testumgebungen gedacht.

Voraussetzungen:

  • Linux-Server mit OpenSSL installiert
  • Domänenname(n), für die Sie das Zertifikat erstellen möchten

In den folgenden Schritten erfahren Sie, wie Sie ein selbstsigniertes Zertifikat erstellen, die CSR-Datei generieren und das Zertifikat mit dem privaten Schlüssel signieren.

#!/bin/bash

WORKDIR="/DATA/files/mqtt"
mkdir -p ${WORKDIR}/cert/

chown 1883:1883 ${WORKDIR}/cert/ -R

# create ca certs
openssl genrsa -out ${WORKDIR}/cert/ca.key 4096 # Create private key file
openssl req -new -x509 -days 365 -key ${WORKDIR}/cert/ca.key -out ${WORKDIR}/cert/ca.crt -subj "/CN=MQTT CA" # Create CA cert

# create server certs
openssl genrsa -out ${WORKDIR}/cert/server.key 2048 # Create private key file
openssl req -out ${WORKDIR}/cert/server.csr -key ${WORKDIR}/cert/server.key -new -subj "/CN=broker" # Create CSR
openssl x509 -req -in ${WORKDIR}/cert/server.csr -CA ${WORKDIR}/cert/ca.crt -CAkey ${WORKDIR}/cert/ca.key -CAcreateserial -out ${WORKDIR}/cert/server.crt -days 365 # Self sign CSR

# create client certs
openssl ecparam -name prime256v1 -genkey -noout -out ${WORKDIR}/cert/client1.key # Create private key file
openssl req -new -sha256 -key ${WORKDIR}/cert/client1.key -out ${WORKDIR}/cert/client1.csr -subj "/CN=broker" # Create CSR
openssl x509 -req -in ${WORKDIR}/cert/client1.csr -CA ${WORKDIR}/cert/ca.crt -CAkey ${WORKDIR}/cert/ca.key -CAcreateserial -out ${WORKDIR}/cert/client1.crt -days 1000 -sha256 # Self sign CSR
openssl pkcs12 -export -nodes -out ${WORKDIR}/cert/client1.pfx -inkey ${WORKDIR}/cert/client1.key -in ${WORKDIR}/cert/client1.crt -passout pass: # Create PFX