openssl korrekt

Quorx

Member
allo,

ich habe vor einigen Jahren eine Anleitung für mich erstellt, die einmal eine CA erstellt, dann ein Intermediate und zum Schluss ein Server-Cert ohne Signing Rights. Nun habe ich mir diese Anleitung angesehen und bin mir nicht mehr sicher ob ich damals grobe Fehler gemacht habe. Ausserdem scheinen die Parameter wohl schon ziemlich outdatet ist.

Leider habe ich leider keine "gescheite" Anleitung gefunden um meine Parameter zu überprüfen.

Code:
openssl genrsa -des3 -out private/cakey.pem 2048 -config ./openssl.cnf
openssl req -new -x509 -nodes -days 3650 -key private/cakey.pem -out certs/cacert.pem -config openssl.cnf

cd ..
mkdir intermediateca
cd intermediateca/
mkdir certs private csr
echo "01" > serial
cp /dev/null certindex.txt
cp ../rootca/openssl.cnf .

openssl genrsa -des3 -out private/cakey.pem 2048 -config ./openssl.cnf
openssl req -new -sha1 -key private/cakey.pem -out csr/ica.csr -config ./openssl.cnf
mv csr/ica.csr ../rootca/
cd ../rootca/
mv certs/cacert.pem .

openssl ca -config ./openssl.cnf -days 1825 -md sha1 -in ica.csr -out ica.crt -extensions v3_ca
mv cacert.pem certs/
mv ica.crt ../intermediateca/certs/
mv ica.csr ../intermediateca/csr/
cd ../intermediateca/
mv certs/ica.crt certs/cacert.pem
cd ..
mkdir servercert
cd servercert/
mkdir certs private csr
cp ../rootca/openssl.cnf .

openssl genrsa -des3 -out server.key 2048 -config ./openssl.cnf
mv server.key private/
openssl req -new -sha1 -key private/server.key -out csr/server.csr -config ./openssl.cnf
mv csr/server.csr ../intermediateca/
cd ../intermediateca/
mv certs/cacert.pem .
openssl ca -config ./openssl.cnf -days 730 -md sha1 -in server.csr -out server.crt
mv cacert.pem certs/
mv server.csr ../servercert/csr/
mv server.crt ../servercert/certs/

Die openssl.cnf wäre folgende:

Code:
cat openssl.cnf
#
# OpenSSL configuration file.
#
# Establish working directory.
dir                                     = .
[ ca ]
default_ca                              = CA_default
[ CA_default ]
serial                                  =:dir/serial
database                                =:dir/certindex.txt
new_certs_dir                           =:dir/certs
certificate                             =:dir/cacert.pem
private_key                             =:dir/private/cakey.pem
default_days                            = 365
default_md                              = sha1
preserve                                = no
email_in_dn                             = no
nameopt                                 = default_ca
certopt                                 = default_ca
policy                                  = policy_match
[ policy_match ]
countryName                             = match
stateOrProvinceName                     = match
organizationName                        = match
organizationalUnitName                  = optional
commonName                              = supplied
emailAddress                            = optional
[ req ]
default_bits                            = 2048                  # Size of keys
default_keyfile                         = key.pem               # name of generated keys
default_md                              = sha1                  # message digest algorithm
string_mask                             = nombstr               # permitted characters
distinguished_name                      = req_distinguished_name
req_extensions                          = v3_req
[ req_distinguished_name ]
# Variable name                         Prompt string
#-------------------------        ----------------------------------
0.organizationName                      = Organization Name (company)
organizationalUnitName                  = Organizational Unit Name (department, division)
emailAddress                            = Email Address
emailAddress_max                        = 40
localityName                            = Locality Name (city, district)
stateOrProvinceName                     = State or Province Name (full name)
countryName                             = Country Name (2 letter code)
countryName_min                         = 2
countryName_max                         = 2
commonName                              = Common Name (hostname, IP, or your name)
commonName_max                          = 64
# Default values for the above, for consistency and less typing.
# Variable name                         Value
#------------------------         ------------------------------
0.organizationName_default              = Testuser
localityName_default                    = Ort
stateOrProvinceName_default             = Hessen
countryName_default                     = DE
[ v3_ca ]
basicConstraints                        = CA:TRUE
subjectKeyIdentifier                    = hash
authorityKeyIdentifier                  = issuer:always
[ v3_req ]
basicConstraints                        = CA:FALSE
subjectKeyIdentifier                    = hash

Es würde mich wirklich jemand glücklich machen wenn jemand von euch mal drüberschauen könnte und mir hier Tipps geben könnte.


Gruß Quorx
 
RSA-Keys mind. mit 4096bit erstellen. CA-Keys für interne Nutzung einfach auf 8192bit prügeln. Statt -des3 müsste auch -aes-irgendwas gehen. Statt SHA1 mind. SHA256 nehmen.
 
ich kann für diese zwecke security/xca empfehlen.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    25,7 KB · Aufrufe: 295
Zurück
Oben