Hinweis:

Mit OCI-Zertifikaten ein internes Zertifikat ausstellen und eine TLS/SSL-geschützte Website auf dem Nginx-Server hosten

Einführung

In diesem Tutorial wird beschrieben, wie Sie mit Oracle Cloud Infrastructure-(OCI-)Zertifikaten ein internes Zertifikat zum Hosten einer durch Transport Layer Security (TLS)/Secure Sockets Layer (SSL) geschützten Website auf dem Nginx-Server ausstellen. OCI Certificates ist ein Service zum Erstellen und Verwalten von TLS-Zertifikaten. Mit dem Service können Organisationen private Certificate-Authority-(CA-)Hierarchien und TLS-Zertifikate erstellen, die automatisch im Kundenmandanten bereitgestellt und erneuert werden können, integriert in OCI-Services wie OCI Load Balancer und OCI API Gateway. Wir können diesen Dienst auch verwenden, um Zertifikate für unsere internen Webserver zu generieren, die auf Nginx gehostet werden.

Um die TLS/SSL-Verschlüsselung auf Ihrem Nginx-Server zu aktivieren, benötigen Sie ein TLS/SSL-Zertifikat. Bei der Certificate Signing Request (CSR) handelt es sich um eine Anforderung, die an eine CA gesendet wird, um ein Zertifikat zu erhalten. Der CSR enthält Informationen zu Ihrer Organisation und der Domain, für die Sie das Zertifikat anfordern. Diese Informationen werden von der CA vor der Ausstellung des TLS/SSL-Zertifikats überprüft. Durch die Überprüfung dieser Informationen wird sichergestellt, dass das Zertifikat an den rechtmäßigen Eigentümer der Domain ausgestellt wird. Wenn Sie eine CSR erstellen, generieren Sie auch einen Private Key. Dieser Private Key wird verwendet, um mit dem entsprechenden Public Key verschlüsselte Daten zu entschlüsseln. Es ist wichtig, diesen Schlüssel sicher zu generieren und sicher zu halten.

Ziele

Voraussetzungen

Aufgabe 1: OCI-CLI auf OCI-Compute-Instanz installieren

Aufgabe 2: Certificate Authority (CA) in OCI erstellen

Erstellen Sie eine Certificate Authority (CA) mit dem OCI-Certificate-Service, mit dem interne Zertifikate für unsere Website ausgestellt werden. Weitere Informationen zur CA-Konfiguration finden Sie unter Certificate Authority erstellen.

Oder

Erstellen Sie eine CA mit der OCI-CLI. Verwenden Sie den Befehl oci certs-mgmt certificate create-certificate-issued-by-internal-ca und die erforderlichen Parameter, um eine Root-CA zu erstellen. Weitere Informationen finden Sie unter create-certificate-issued-by-internal-ca.

Befehlsformat:

oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id <compartment_OCID> --name <CA_display_name> --subject <CA_subject_information> --kms-key-id <Vault_encryption_key_OCID>

Beispielbefehl:

oci certs-mgmt certificate-authority create-root-ca-by-generating-config-details --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --name MyRootCA --subject file://subject.json --kms-key-id ocid1.key.oc1.iad.abcxxxxx

Hinweis: Der Betreff ist ein komplexer Typ, dessen Wert ein gültiges JSON-Format aufweisen muss. Der Wert kann als Zeichenfolge in der Befehlszeile angegeben oder mit der Syntax von file://path/to/file als Datei übergeben werden.

Beispiel für die Datei subject.json.

subject.json
{
  "commonName": "MyRootCA"
}

Aufgabe 3: Certificate Signing Request (CSR) mit OpenSSL erstellen

Erstellen Sie eine CSR auf dem Nginx-Server, die auch einen privaten Schlüssel auf demselben Server erstellt. Dies ist ein empfohlener Ansatz, der uns eine standardisierte Möglichkeit bietet, die CA auf Ihrem Public Key zu senden, sowie einige Informationen, die Ihr Unternehmen und Ihren Domainnamen identifizieren. Wenn Sie den CSR direkt auf dem Nginx-Server generieren, können Sie das TLS/SSL-Zertifikat nach der Ausstellung nahtlos integrieren.

  1. Navigieren Sie zu cd /etc/pki/tls/private/.

  2. Erstellen Sie eine Datei mit dem Namen mywebsitecert.cnf, um Parameter wie den Subject Alternative Name (SAN) anzugeben, für die Sie das Zertifikat anfordern.

    Hinweis: Mit der SAN-Erweiterung können zusätzliche Identitäten, wie Domainnamen oder IP-Adressen, an das Zertifikats Subject angehängt werden. Die Verwendung der SAN-Erweiterung ist die Standardpraxis für SSL-Zertifikate, und sie ist auf dem Weg, die Verwendung des allgemeinen Namens zu ersetzen.

    Musterdatei:

    [req]
    distinguished_name = req_distinguished_name
    req_extensions = v3_req
    prompt = no
    
    [req_distinguished_name]
    C = IN
    ST = Telangana
    L = Hyd
    O = OU
    CN = www.mywebsite.com
    
    [v3_req]
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1 = mywebsite.com
    IP.1 = 1.2.3.4
    
    
  3. Mit dem folgenden Befehl können Sie eine CSR erstellen.

    Sie müssen einer CA die Datei mywebsite.csr bereitstellen, um Ihr SSL-Zertifikat abzurufen. Damit wird das SSL-Zertifikat für Ihre Domain generiert. Es verwendet die Konfiguration, die bereits über die Datei mywebsitecert.cnf bereitgestellt wurde.

    Halten Sie die Datei private.key sicher, da sie zum Entschlüsseln von Daten verwendet wird, die mit dem entsprechenden Public Key verschlüsselt sind.

    openssl req -out mywebsite.csr -newkey rsa:4096 -nodes -keyout private.key -config mywebsitecert.cnf
    

Aufgabe 4: Zertifikate mit der CA erstellen

Um ein neues Zertifikat mit der OCI-CLI zu erstellen, müssen Sie die .pem des Zertifikats auf dem Nginx-Server installieren.

  1. Konvertieren Sie das Format der Datei csr in das Format .pem.

    openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
    
  2. Führen Sie den folgenden Befehl aus, um ein Zertifikat zu erstellen.

    Befehlsformat:

    oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id  <compartment_OCID>  --csr-pem <csr_pem> --issuer-certificate-authority-id <CA_OCID> --name <Certificate-name>
    

    Beispielbefehl:

    oci certs-mgmt certificate create-certificate-managed-externally-issued-by-internal-ca --compartment-id ocid1.compartment.oc1..aaaaaaaaxxx --csr-pem mywebsite.pem --issuer-certificate-authority-id ocid1.certificateauthority.oc1.iad.aaaxxxx
    --name mywebsite.com
    

Aufgabe 5: Zertifikat und Zertifikatskette herunterladen

Die Zertifikatsdateien pem können direkt von der OCI-Konsole abgerufen werden. Navigieren Sie zu Identität und Sicherheit, Zertifikate, Zertifikat, Inhalt anzeigen, und laden Sie den Inhalt von certificate-pem und certificate-chain-pem herunter.

Erstellen Sie eine einzelne Datei, indem Sie den Inhalt aus beiden Dateien kombinieren, certificate-pem oben und certificate-chain-pem unten in der Datei. Sie können es als ca_certificate.pem benennen.

Oder

Sie können das Zertifikat auch mit dem folgenden Befehl von der OCI-CLI abrufen.

Befehlsformat:

oci certificates certificate-bundle get --certificate-id <Certificate_OCID> > certificate.crt

Hinweis: Kopieren Sie die Oracle Cloud-ID (OCID) des Zertifikats.

Aufgabe 6: Nginx-Server mit dem Zertifikat installieren und konfigurieren

  1. Installieren Sie Nginx auf einer Compute-Instanz. Weitere Informationen finden Sie unter Nginx installieren.

  2. Öffnen Sie einen Webbrowser, und rufen Sie die Webseite mit https://your-server-ip auf. Prüfen Sie auf Sicherheitswarnungen oder Fehler, die vom Browser angezeigt werden können.

    Bild

    Es wird eine Sicherheitswarnung angezeigt. Daher müssen Sie das Zertifikat installieren und die Datei conf auf dem Nginx-Server ändern.

  3. Kopieren Sie die heruntergeladenen Dateien certificate.pem und ca_certificate.pem aus der OCI-Konsole oder der OCI-CLI auf Ihren Nginx-Server.

  4. Konfigurieren Sie den Nginx-Server, indem Sie dessen Konfigurationsdatei unter /etc/nginx/conf.d bearbeiten.

    Bild

  5. Starten Sie den Nginx-Server neu.

Aufgabe 7: Testen, ob HTTPS funktioniert

Wir haben das CA-Zertifikat (ca_certificate.pem) im Ordner der vertrauenswürdigen Root-Zertifizierungsstelle auf dem lokalen Rechner, dem Zertifikatspeicher auf unseren Clientrechnern, die für den Zugriff auf diese Website verwendet werden, abgelegt. Dies geschieht, weil CAs, die von OCI-Zertifikaten erstellt werden, private CAs sind und daher von den Browsern nicht vertrauenswürdig sind. Daher müssen wir die Root-CA und die Zwischen-CA (sofern verwendet) im vertrauenswürdigen Root-Speicher oder Zwischenspeicher auf allen lokalen Computern hinzufügen, die versuchen, auf die Website zuzugreifen.

Öffnen Sie einen Webbrowser, und rufen Sie die Webseite mit https://your-server-ip auf. Beachten Sie jetzt, dass die Webseite mit einem gültigen TLS-Zertifikat bedient wird. Alle zuvor aufgetretenen Sicherheitswarnungen oder Fehler sollten behoben werden.

Bild

Bild

Wenn Sie diese Aufgaben ausführen, stellen Sie sicher, dass Ihr Nginx-Server ordnungsgemäß mit dem internen CA-Zertifikat konfiguriert ist und Clients über HTTPS sicher auf die Webseite zugreifen können.

Danksagungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.