Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:ca_on_oracle_linux_9

Oracle Linux 9 - Zentrales Erstellen und Verwalten der Zertifikate einer Oracle Datenbank/Reports/APEX Umgebung

Aufgabe

Alle Zertifikaten der Umgebung sollen über eine eigenen zentrale CA erstellt und abgewickelt werden.

Dazu werden die Zertifikate inkl. private Key auf der eigenen CA erstellt.

Eingesetzt wird dazu eine Oracle Linux 9 VM, Minimale Installation, die CA wird über den User Admin verwaltet und bedient.


CA Software bereitstellen

Als Software wird OpenSSL und das Skript Framework Easy-RSA eingesetzt.

Vorbereitung : ol9_developer_EPEL Repo einrichten/aktiveren falls noch nicht aktiv!

Als Root:

dnf install oracle-epel-release-el9
 
dnf install easy-rsa openssl

CA Verzeichnis einrichten

Als root:

mkdir  /srv/gpi_ca/
 
ln -s /usr/share/easy-rsa/3 /srv/gpi_ca/easy-rsa
 
chown -R admin:admin gpi_ca/
chmod 700 gpi_ca/

CA anlegen

Weiter als user admin!

Verzeichnisstruktur der CA und Konfiguration anlegen

CA anlegen mit easyrsa init-pki

cd /srv/gpi_ca/
 
 
./easy-rsa/easyrsa init-pki
 
 
Notice
------
'init-pki' complete; you may now create a CA or requests.
 
Your newly created PKI dir is:
* /srv/gpi_ca/pki
 
Using Easy-RSA configuration:
* undefined

Die folgenden Verzeichnisse / Dateien werden am Ende ngelegt:

  • ca.crt - CA certificate
  • index.txt - „master database“ issued certs
  • serial - Stores the next serial number (serial numbers increment)
  • private/ca.key - This is the CA private key (security-critical)
  • certs_by_serial/ - dir with all CA-signed certs by serial number
  • issued/ - dir with issued certs by commonName

CA Stammdaten hinterlegen

cd /srv/gpi_ca/pki
 
# Konfiguration anlegen
cp vars.example var
 
vi vars
 
set_var EASYRSA_REQ_COUNTRY     "DE"
set_var EASYRSA_REQ_PROVINCE    "Hessen"
set_var EASYRSA_REQ_CITY        "Rossbach"
set_var EASYRSA_REQ_ORG         "GPI Consult"
set_var EASYRSA_REQ_EMAIL       "info@pipperr.de"
set_var EASYRSA_REQ_OU          "IT Department"
 
set_var EASYRSA_KEY_SIZE        2048
 
set_var EASYRSA_ALGO            ec
 
# Define the named curve, used in ec & ed modes:
#
set_var EASYRSA_CURVE           secp384r1
 
# In how many days should the root CA key expire?
#
set_var EASYRSA_CA_EXPIRE       3650
 
# In how many days should certificates expire?
#
set_var EASYRSA_CERT_EXPIRE     825
 
# How many days until the next CRL publish date?  Note that the CRL can still
# be parsed after this timeframe passes. It is only used for an expected next
# publication date.
#
set_var EASYRSA_CRL_DAYS        180
 
# Random serial numbers by default.
# Set to 'no' for the old incremental serial numbers.
#
set_var EASYRSA_RAND_SN "yes"
 
# Cut-off window for checking expiring certificates.
#
set_var EASYRSA_PRE_EXPIRY_WINDOW       90
 
# Generate automatic subjectAltName for certificates
#
set_var EASYRSA_AUTO_SAN        1

CA - Schlüssel erzeugen

CA generieren mit easyrsa build-ca

cd ..
./easy-rsa/easyrsa build-ca
 
Using Easy-RSA 'vars' configuration:
* /srv/gpi_ca/pki/vars
 
Enter New CA Key Passphrase:
 
Confirm New CA Key Passphrase:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:GPI.local CA
 
Notice
------
CA creation complete. Your new CA certificate is at:
* /srv/gpi_ca/pki/ca.crt
 
Create an OpenVPN TLS-AUTH|TLS-CRYPT-V1 key now: See 'help gen-tls'
 
Build-ca completed successfully.

Anzeigen lassen mit easyrsa show-ca:

        Signature Algorithm: ecdsa-with-SHA256
        Issuer:
            commonName                = GPI.local CA
        Validity
            Not Before: Apr 30 11:13:01 2025 GMT
            Not After : Apr 28 11:13:01 2035 GMT
        Subject:
            commonName                = GPI.local CA

CA Zertifikate

Das öffentliche Zertifikat der CA

Unter /srv/gpi_ca/pki liegt die Datei ca.crt mit dem öffentliche Zertifikat der CA.

In jede Komponente, die nun mit von der CA zertifizierten Diensten „reden“ will muss dieses Zertifikat jeweils importiert werden.

Diese Zertifikat stellen wir später zum einfachen Download bereit.

Der private Schlüssel der CA

Unter /srv/gpi_ca/pki/private liegt die Datei ca.key mit dem privaten Schlüssel der CA. Dieser Schlüssel verbleibt auf unsere CA und darf nicht in die falschen Hände geraten.

Angelegt Zertifkate abfragen

cd /srv/gpi_ca/pki
 
at index.txt
V       270803114948Z           6A0720FE60E27FA608208C8AA54D9072        unknown /CN=podman23ai.local


Die CA sichern

Da ein Verlust der Schlüssel der CA sehr unangenehme Folgen hat sichern wir im Anschuss das gesamte CA Verzeichnis regelmäßig.


Ein Server Zertifikat anlegen

Auf unserer CA erzeugen wir den privaten Schlüssel für das System das wir schützen wollen, im Beispiel heißt der Server podman23ai.local in einem Schritt

cd /srv/gpi_ca
 
 
./easy-rsa/easyrsa build-server-full  podman23ai.local nopass
 
cd pki
 
find . -name podman23ai*
 
./issued/podman23ai.local.crt
./private/podman23ai.local.key
./reqs/podman23ai.local.req
./inline/private/podman23ai.local.inline

SSL Zertifikat anzeigen lassen:

openssl x509 -in ./issued/podman23ai.local.crt -noout -text
 
..
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            6a:07:20:fe:60:e2:7f:a6:08:20:8c:8a:a5:4d:90:72
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=GPI.local CA
        Validity
            Not Before: Apr 30 11:49:48 2025 GMT
            Not After : Aug  3 11:49:48 2027 GMT
        Subject: CN=podman23ai.local
        Subject Public Key Info:
...
 X509v3 Subject Alternative Name:
                DNS:podman23ai.local
 
...

In einem so angelegten Zertifikat ist auch der „Subject Alternative Name (SAN)“ gesetzt, diese Information ist seit min 2 Jahren zusätzlich immer notwendig!


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
"Autor: Gunther Pipperr"
linux/ca_on_oracle_linux_9.txt · Zuletzt geändert: von gpipperr