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.
Die openssl.cnf wäre folgende:
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
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