Beiträge zu “Zertifikate”

Echte Profis beim BSI, Oh warte mal....

Ist ja auch wirklich schwer so Webserver Zertifikate regelmässig und automatisch zu aktualisieren. Können ja nur die Leute von der NSA.

Und selbst wenn man es merkt kann das Tage dauern bis so eine Behörde wieder über das Internet erreichbar ist.

Ohne Worte


26.9.18
Weitere Beiträge zu: BSI   Zertifikate   Letsencrypt  

[31c3] Let's Encrypt

Ich bin schon seit längerem der Meinung das alle Webserver nur noch verschlüsselt statt unverschlüsselt operieren sollten. Seit März habe auch ich diesen Blog umgestellt.

Für alle

  • die immer noch glauben, das man nur Login und Kreditkarteninformationen verschlüsseln werden müssen
  • denen es einfach zu kompliziert oder zu teuer ist Ihre Webseite komplett mit https zu verschlüsseln

sei dieser Talk empfohlen.

Es wird ein (hoffentlich erfolgreicher) Ansatz vorgestellt um die Frage der Kosten und Handhabung im nächsten Jahr in den Griff zu bekommen.

Das Demo sah sehr gut aus. Damit sollte niemand mehr sagen können. das es zu teuer oder kompliziert ist

Für alle die nicht warten wollen und es technisch drauf haben. Bei startssl gibt es kostenlose Zertifikate für den privaten Gebrauch.

Lets Encrypt

2.1.15
Weitere Beiträge zu: Zertifikate   CA   31C3  

Erstklassiger Service bei StartSSL.com

Ich nutze seit langem die kostenlosen SSL Zertifikate von Startssl. Der einzige “Nachteil” ist das man sie jährlich erneuern muss.

Heute stand wieder so eine Erneuerung an. Leider konnte ich mich nicht anmelden. Es gab die unschöne Meldung

 Secure Connection Failed.  An error occurred during a connection to auth.startssl.com. Peer does not recognize and trust the CA that issued your certificate. (Error code: ssl_error_unknown_ca_alert)

Eigentlich hatte ich seit dem letzten mal nichts geändert. Die klassische Googlerecherche brachte keine Hilfe. Was soll’s dachte ich, “schreibste mal ne Mail an den Support”

Und was soll ich sagen. Eine Stunde später hatte ich eine qualifizierte Antwort. Und das bei einem kostenlosen Dienst. Cool.

Die Lösung bestand übrigens darin im Browser unter “Advanced” -> “Encryption” -> “View Certificates”, “Authorities” alle CA Zertifikate von Startssl die mit “Software Security Device” markiert waren zu entfernen. Ich weiß zwar nicht wie die dahin kamen aber es hat geholfen.

13.9.14
Weitere Beiträge zu: Zertifikate   Startssl   CA  

Erstellen einer eigenen Certificate Authority

Warnung: Dieser Beitrag ist lediglich eine Dokumentation meiner Schritte und basiert im wesentlichen auf diesem und diesem Beitrag. Ich stehe mit den ganzen verschiedenen Dateien noch etwas auf Kriegsfuß.

Ziel ist es eine eigene Certificate Authority aufzusetzen um dann eigene SSL Zertifikate für Webserver und persönliche Zertifikate für die Authentifizierung zu erstellen.

Zuerst muss ein öffentlicher und privater Schlüssel erstellt werden und dann das Zertifikate sowie ein Repository für die Ablage der neuen Schlüssel

1. Verzeichnisse einrichten

export SSLDIR=$HOME/CERT-AUTH
mkdir $SSLDIR  
mkdir $SSLDIR/certs  
mkdir $SSLDIR/crl  
mkdir $SSLDIR/newcerts 
mkdir $SSLDIR/private  
mkdir $SSLDIR/requests  
touch $SSLDIR/index.txt  
echo "01" > $SSLDIR/serial  
chmod 700 $SSLDIR 

2. Konfigurationsdatei openssl.conf einrichten

Die meisten Werte kann ich nicht erklären. Für mich wichtig waren nur die Pfadangaben im Abschnitt CA_default, user_cert und v3_ca. Den Rest habe ich einfach übernommen.

# =================================================
# OpenSSL configuration file
# =================================================
RANDFILE         = $ENV::SSLDIR/.rnd
[ ca ]
default_ca       = CA_default
[CA_default ]
dir              = $ENV::SSLDIR
certs            = $dir/certs
new_certs_dir    = $dir/newcerts
crl_dir          = $dir/crl
database         = $dir/index.txt
private_key      = $dir/private/ca.key.pem
certificate      = $dir/certs/ca.cert.pem
serial           = $dir/serial
crl              = $dir/crl.pem
RANDFILE         = $dir/private/.rand
default_days     = 365
default_crl_days = 30
default_md       = sha1
preserve         = no
policy           = policy_anything
name_opt         = ca_default
cert_opt         = ca_default
[ usr_cert ]
basicConstraints        = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
nsComment = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
[ v3_ca ] 
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints        = critical, CA:true
nsCertType              = sslCA
keyUsage                = cRLSign, keyCertSign 
extendedKeyUsage        = serverAuth, clientAuth 
nsComment               = "OpenSSL CA Certificate" 

3. Öffentlichen und privaten Schlüssel des Wurzelzertifikates erstellen

openssl genrsa -aes256 -out $SSLDIR/private/ca.key.pem 4096
chmod 400 $SSLDIR/private/ca.key.pem

4. Wurzelzertifikat erstellen

openssl req -new -x509 -days 3650 -key $SSLDIR/private/ca.key.pem -extensions v3_ca -out $SSLDIR/certs/ca.cert.pem 
Enter pass phrase for /root/CERT-AUTH/private/ca.key.pem:
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.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:NRW
Locality Name (eg, city) []:Meckenheim
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hagen-Bauer-CA
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:Hagen-Bauer
Email Address []:hagen.bauer@caserio.de

5. Schlüssel für den Web Server erstellen

cd $SSLDIR
openssl genrsa -out private/seeblick.hagen-bauer.de.key.pem 4096

6. Generiere ein CSR

openssl req -new -key private/www.hagen-bauer.de.key.pem -out certs/www.hagen-bauer.de.csr.pem
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.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:NRW
Locality Name (eg, city) []:Meckenheim
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hagen-Bauer-CA
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www.hagen-bauer.de
Email Address []:hagen.bauer@caserio.de

7. Signiere den CSR und erstelle ein neues Zertifikat

openssl ca -config openssl.conf -extensions usr_cert -notext -md sha1 -in certs/seeblick.hagen-bauer.de.csr.pem -out certs/seeblick.hagen-bauer.de.cert.pem
Using configuration from openssl.conf
Enter pass phrase for /root/CERT-AUTH/private/ca.key.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
    Serial Number: 1 (0x1)
    Validity
        Not Before: Jun 22 08:59:49 2014 GMT
        Not After : Jun 22 08:59:49 2015 GMT
    Subject:
        countryName               = DE
        stateOrProvinceName       = NRW
        localityName              = Meckenheim
        organizationName          = Hagen-Bauer-CA
        commonName                = www.hagen-bauer.de
        emailAddress              = hagen.bauer@caserio.de
    X509v3 extensions:
        X509v3 Basic Constraints: 
            CA:FALSE
        X509v3 Key Usage: 
            Digital Signature, Non Repudiation, Key Encipherment
        Netscape Comment: 
            OpenSSL Generated Certificate
        X509v3 Subject Key Identifier: 
            70:88:86:07:4.....
        X509v3 Authority Key Identifier: 
            keyid:70:80:....

Certificate is to be certified until Jun 22 08:59:49 2015 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

8. Installiere die Zertifikate und Schlüssel auf dem Webserver

Ein schönes Paket erstellen

mkdir transferpakete   
mkdir transferpakete/www.hagen-bauer.de
cd transferpakete/www.hagen-bauer.de/
ln -s /root/CERT-AUTH/private/www.hagen-bauer.de.key.pem .
ln -s /root/CERT-AUTH/certs/ca.cert.pem .
ln -s /root/CERT-AUTH/certs/www.hagen-bauer.de.cert.pem .
cd ..
tar czvfh admin.hagen-bauer.de.tar.gz www.hagen-bauer.de

Dann dieses Paket auf den eigentlichen Webserver kopieren und an die richtige Stelle auspacken

cd /etc/ssl
tar xzvf /home/hbauer/www.hagen-bauer.de.tar.gz

und im Serverdokument für den Webserver eintragen

vi /etc/apache2/sites-enabled/hagen-bauer-admin 

SSLEngine on
SSLCertificateFile /etc/ssl/www.hagen-bauer.de/www.hagen-bauer.de.cert.pem
SSLCertificateKeyFile /etc/ssl/www.hagen-bauer.de/www.hagen-bauer.de.key.pem
SSLCACertificateFile /etc/ssl/www.hagen-bauer.de/ca.cert.pem

Wenn man jetzt auf den Webserver zugreift bekommt man natürlich zuerst wieder die übliche Meldung des unzuverlässigen Zertifikates. Installiert man allerdings das SSLCACertificte ca.cert.pem im Browser dann wird von da an allen selbst erstellten Zertifikaten vertraut.

22.6.14
Weitere Beiträge zu: Zertifikate   CA  

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License