Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
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
- Mit OCI Certificates können Sie ein internes Zertifikat ausstellen und eine TLS/SSL-geschützte Website auf dem Nginx-Server hosten.
Voraussetzungen
-
Installieren Sie die Oracle Cloud Infrastructure-Befehlszeilenschnittstelle (OCI-CLI) auf Ihrem lokalen Rechner. Sie können es von der OCI-CLI-Installationsseite herunterladen.
-
Richten Sie die OCI-CLI mit den erforderlichen Zugangsdaten und der erforderlichen Konfiguration ein, und konfigurieren Sie sie. Mit dem Befehl
OCI setup config
können Sie die OCI-CLI konfigurieren. -
Installieren Sie Nginx auf Ihrem Server. Weitere Informationen finden Sie unter NGINX-Konfiguration aktualisieren.
Aufgabe 1: OCI-CLI auf OCI-Compute-Instanz installieren
-
Installieren und konfigurieren Sie die OCI-CLI. Weitere Informationen finden Sie unter OCI-Befehlszeilenschnittstelle (CLI).
-
Nachdem Sie eine Verbindung zur OCI Compute-Instanz hergestellt haben, führen Sie die folgenden Befehle aus, um Python- und OCI-CLI-Packages auf einer Linux-Instanz zu installieren und zu prüfen.
sudo dnf -y install oraclelinux-developer-release-el8 sudo dnf install python36-oci-cli
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.
-
Navigieren Sie zu
cd /etc/pki/tls/private/
. -
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
-
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 Dateimywebsitecert.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.
-
Konvertieren Sie das Format der Datei
csr
in das Format.pem
.openssl req -inform DER -in mywebsite.csr -out mywebsite.pem
-
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
-
Installieren Sie Nginx auf einer Compute-Instanz. Weitere Informationen finden Sie unter Nginx installieren.
-
Ö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.Es wird eine Sicherheitswarnung angezeigt. Daher müssen Sie das Zertifikat installieren und die Datei
conf
auf dem Nginx-Server ändern. -
Kopieren Sie die heruntergeladenen Dateien
certificate.pem
undca_certificate.pem
aus der OCI-Konsole oder der OCI-CLI auf Ihren Nginx-Server. -
Konfigurieren Sie den Nginx-Server, indem Sie dessen Konfigurationsdatei unter
/etc/nginx/conf.d
bearbeiten. -
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.
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.
Verwandte Links
Danksagungen
- Autor - Shruti Soumya
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.
Use OCI Certificates to Issue an Internal Certificate and Host a TLS/SSL Protected Website on Nginx Server
F94725-01
March 2024