Linux/OpenSSL: Unterschied zwischen den Versionen

Aus VivaLV
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 73: Zeile 73:
  Email Address []:Mailadresse
  Email Address []:Mailadresse


Kein Passwort eingeben. Mit dem name.csr online ein SSL-Zertifikat beantragen.
Kein Passwort eingeben. Mit dem '''name.csr''' online ein SSL-Zertifikat beantragen.


==Zertifikat speichern==
==Zertifikat speichern==
Zeile 81: Zeile 81:


==Apache==
==Apache==
name.key, name.crt und name.cabundle kpoieren nach /etc/apache2/ssl.
'''name.key''', '''name.crt''' und '''name.cabundle''' kopieren nach '''/etc/apache2/ssl'''.


/etc/apache2/vhosts.d/00_default_ssl_vhost.conf:
'''/etc/apache2/vhosts.d/00_default_ssl_vhost.conf''':
  SSLCertificateFile /etc/apache2/ssl/name.crt
  SSLCertificateFile /etc/apache2/ssl/name.crt
  SSLCertificateKeyFile /etc/apache2/ssl/name.key
  SSLCertificateKeyFile /etc/apache2/ssl/name.key
Zeile 90: Zeile 90:
==Postfix==
==Postfix==
  cat name.crt name.cabundle >name.cer
  cat name.crt name.cabundle >name.cer
name.cer und name.cabundle kopieren nach /etc/postfix.
In der neuen Datei prüfen, dass '''BEGIN''' und '''END''' Markierungen jeweils in eigenen Zeilen sind. '''name.key''' und '''name.cer''' kopieren nach '''/etc/postfix'''.


/etc/postfix/main.cf:
'''/etc/postfix/main.cf''':
  smtpd_tls_key_file = /etc/postfix/name.key
  smtpd_tls_key_file = /etc/postfix/name.key
  smtpd_tls_cert_file = /etc/postfix/name.cer
  smtpd_tls_cert_file = /etc/postfix/name.cer


==uw-imap==
==VU+==
cat name.crt name.cabundle >name.cer
In der neuen Datei prüfen, dass '''BEGIN''' und '''END''' Markierungen jeweils in eigenen Zeilen sind. '''name.key''' und '''name.cer''' kopieren nach '''/etc/enigma2''' als '''key.pem''' und '''cert.pem'''.
 
==uw-imap und Dovecot==
  cat name.key name.cer >imapd.pem
  cat name.key name.cer >imapd.pem
imapd.pem kopieren nach /etc/ssl/certs
'''imapd.pem''' kopieren nach '''/etc/ssl/certs'''.
 
= Let's Encrypt =
 
== Installieren ==
emerge app-crypt/certbot-apache
 
== Zertifikat erstellen ==
Ohne Apache, Challenge über Port 80 von certbot:
certbot certonly --standalone --preferred-challenges http -m meine@email.adresse -d domain.de
 
== Postfix ==
'''/etc/postfix/main.cf:'''
smtpd_tls_cert_file= /etc/letsencrypt/live/domain.de/fullchain.pem
smtpd_tls_key_file= /etc/letsencrypt/live/domain.de/privkey.pem
 
== Dovecot ==
'''/etc/dovecot/conf.d/10-ssl.conf:'''
ssl = yes
ssl_cert = </etc/letsencrypt/live/domain.de/fullchain.pem
ssl_key  = </etc/letsencrypt/live/domain.de/privkey.pem
 
== Automatisch erneuern ==
'''/root/letsencrypt.sh:'''
certbot renew
postfix reload
/etc/init.d/dovecot restart
 
'''crontab -e'''
@weekly        /root/letsencrypt.sh
 
= Verifizieren =
 
== Webserver ==
openssl s_client -showcerts -connect server.de:443 -servername server.de | openssl x509 -noout -dates
 
== SMTP ==
openssl s_client -starttls smtp -showcerts -connect server.de:587 | openssl x509 -noout -dates
 
== IMAP ==
openssl s_client -showcerts -connect server.de:993 -servername server.de | openssl x509 -noout -dates

Aktuelle Version vom 9. Juni 2024, 07:11 Uhr

Self-signed Zertifikat

Quelle

http://christopher.wojno.com/articles/2008/11/04/going-ssl-with-your-own-root-ca und http://christopher.wojno.com/articles/2008/11/08/creating-your-own-apache-ssl-certificate-signed-by-your-root-ca

Vorbereitung

mkdir /root/ca
chmod 700 /root/ca
cd /root/ca
mkdir certs
chmod 700 certs
mkdir private
chmod 700 private

Root/CA-Zertifikat erstellen

cd /root/ca
openssl genrsa -out private/cakey.pem -des3 2048
openssl req -new -x509 -key private/cakey.pem -out certs/cacert.crt -days 3600

Im Common Name (CN) Feld keine Domäne eingeben, sondern z.B. <MeinName> CA Root.

echo "01" > serial.srl
chmod 0660 serial.srl

Server-Zertifikat erstellen (z.B. für Apache, Postfix, IMAP)

cd /root/ca
openssl genrsa -out www.pem 2048
openssl req -new -sha1 -out www.csr -key www.pem

Im Common Name (CN) Feld die Domäne eingeben.

openssl x509 -req -days 3659 -in www.csr -CA certs/cacert.crt -CAkey private/cakey.pem -CAserial serial.srl -out www.crt

Server-Zertifikat in Apache einbinden

cd /root/ca
cp certs/cacert.crt /etc/apache2/ssl/
chmod 600 /etc/apache2/ssl/cacert.crt
cp www.crt /etc/apache2/ssl/
chmod 600 /etc/apache2/ssl/www.crt
cp www.pem /etc/apache2/ssl/
chmod 600 /etc/apache2/ssl/www.pem

/etc/apache2/vhosts.d/00_default_ssl_vhost.conf:

SSLCertificateFile /etc/apache2/ssl/www.crt
SSLCertificateKeyFile /etc/apache2/ssl/www.pem
SSLCertificateChainFile /etc/apache2/ssl/cacert.crt

Server-Zertifikat in Postfix einbinden

cd /root/ca
cp certs/cacert.crt /etc/postfix/
chmod 600 /etc/postfix/cacert.crt
cp www.crt /etc/postfix/
chmod 600 /etc/postfix/www.crt
cp www.pem /etc/postfix/
chmod 600 /etc/postfix/www.pem

/etc/postfix/main.cf:

smtpd_tls_key_file = /etc/postfix/www.pem
smtpd_tls_cert_file = /etc/postfix/www.crt
smtpd_tls_CAfile = /etc/postfix/cacert.crt

Server-Zertifikat in uw-imap einbinden

cd /root/ca
cat www.pem >/etc/ssl/certs/imapd.pem
cat www.crt >>/etc/ssl/certs/imapd.pem
chmod 600 /etc/ssl/certs/imapd.pem

Echtes Domain-validiertes Zertifikat mit Zwischenzertifikat

Zertifikat-Request erstellen

openssl req -new -nodes -sha256 -keyout name.key -out name.csr -newkey rsa:2048

Die Fragen beantworten:

Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Bundesland
Locality Name (eg, city) []:Ort
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Private
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:Domäne
Email Address []:Mailadresse

Kein Passwort eingeben. Mit dem name.csr online ein SSL-Zertifikat beantragen.

Zertifikat speichern

Nach der Erstellung bekommt man das Zertifikat und das Zwischenzertifikat normalerweise per E-Mail. Diese abspeichern unter:

name.crt
name.cabundle

Apache

name.key, name.crt und name.cabundle kopieren nach /etc/apache2/ssl.

/etc/apache2/vhosts.d/00_default_ssl_vhost.conf:

SSLCertificateFile /etc/apache2/ssl/name.crt
SSLCertificateKeyFile /etc/apache2/ssl/name.key
SSLCertificateChainFile /etc/apache2/ssl/name.cabundle

Postfix

cat name.crt name.cabundle >name.cer

In der neuen Datei prüfen, dass BEGIN und END Markierungen jeweils in eigenen Zeilen sind. name.key und name.cer kopieren nach /etc/postfix.

/etc/postfix/main.cf:

smtpd_tls_key_file = /etc/postfix/name.key
smtpd_tls_cert_file = /etc/postfix/name.cer

VU+

cat name.crt name.cabundle >name.cer

In der neuen Datei prüfen, dass BEGIN und END Markierungen jeweils in eigenen Zeilen sind. name.key und name.cer kopieren nach /etc/enigma2 als key.pem und cert.pem.

uw-imap und Dovecot

cat name.key name.cer >imapd.pem

imapd.pem kopieren nach /etc/ssl/certs.

Let's Encrypt

Installieren

emerge app-crypt/certbot-apache

Zertifikat erstellen

Ohne Apache, Challenge über Port 80 von certbot:

certbot certonly --standalone --preferred-challenges http -m meine@email.adresse -d domain.de

Postfix

/etc/postfix/main.cf:

smtpd_tls_cert_file= /etc/letsencrypt/live/domain.de/fullchain.pem
smtpd_tls_key_file= /etc/letsencrypt/live/domain.de/privkey.pem

Dovecot

/etc/dovecot/conf.d/10-ssl.conf:

ssl = yes
ssl_cert = </etc/letsencrypt/live/domain.de/fullchain.pem
ssl_key  = </etc/letsencrypt/live/domain.de/privkey.pem

Automatisch erneuern

/root/letsencrypt.sh:

certbot renew
postfix reload
/etc/init.d/dovecot restart

crontab -e

@weekly         /root/letsencrypt.sh

Verifizieren

Webserver

openssl s_client -showcerts -connect server.de:443 -servername server.de | openssl x509 -noout -dates

SMTP

openssl s_client -starttls smtp -showcerts -connect server.de:587 | openssl x509 -noout -dates

IMAP

openssl s_client -showcerts -connect server.de:993 -servername server.de | openssl x509 -noout -dates