Gå till innehållet

Nya certifikat

DF använder SSL-certifikat till ganska många olika tjänster. Här har jag försökt sammanfatta hur man gör för att förnya dem när de expirerar, vilket i princip händer varje år (oftast i september).

Certifikatskapandet sker på igloo i katalogen /usr/local/ssl/df, det ska förstås flyttas till Nya_certifikat//df någonstans så fort som möjligt.

För att signera med DFs CA-certifikat krävs en nyckel som av säkerhetsskäl inte anges här.

Allmänt certifikat

Börja med:

openssl req -nodes -new -x509 -keyout newreq.pem -out newreq.pem -days 365 -config df.cnf

Nu skapas en certificate request i newreq.pem, och den innehåller även den privata nyckeln. Den behövs sedan.

Nu ska vi signera:

openssl x509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem openssl ca -config df-ca.cnf -policy policy_anything -out newcert.pem -infiles tmp.pem

Vips så får vi newcert.pem, som innehåller det signerade certifikatet. Man kan nu ta bort tmp.pem.

Certifikat för mailservern (sendmail på systemet mail)

Skapa certificate request:

openssl req -nodes -new -x509 -keyout mailreq.pem -out mailreq.pem -days 365 -config df-mail.cnf openssl x509 -x509toreq -in mailreq.pem -signkey mailreq.pem -out tmp.pem

Alla inställningar ska redan ha rätt default, bara kör enter rakt igenom.

Sen ska vi signera:

openssl ca -config df-ca.cnf -policy policy_anything -out mailcert.pem -infiles tmp.pem

Dags att stoppa sendmail:

svcadm disablesmtp:sendmail

Kopiera sedan certifikatet:

cp mailcert.pem /etc/mail/certs cp mailreq.pem /etc/mail/certs/mailkey.pem chmod og= /etc/mail/certs/*

Slutligen starta sendmail igen:

svcadm enablesmtp:sendmail

Certifikat för IMAP (dovecot på systemet mail)

Skapa certificate request (byt lämpligen ut 2007 mot innevarande år!):

openssl req -nodes -new -x509 -keyout imap2007req.pem -out imap2007req.pem -days 365 -config df-mail.cnf openssl x509 -x509toreq -in imap2007req.pem -signkey imap2007req.pem -out tmp.pem

Sen ska vi signera:

openssl ca -config df-ca.cnf -policy policy_anything -out imap2007.pem -infiles tmp.pem

Stoppa dovecot:

svcadm disable cswdovecot

Kopiera nu certifikatet:

cp imap2007req.pem /opt/csw/ssl/private/dovecot.pem cp imap2007.pem /opt/csw/ssl/certs/dovecot.pem

Starta dovecot på nytt:

svcadm enable cswdovecot

Certifikat för webservern (apache2 på systemet www)

Skapa certificate request:

openssl req -new -nodes -keyout server.key -out server.csr -config df-mail.cnf

OBS! Ange www.df.lth.se som Common Name!

Signera certifikatet:

openssl ca -config df-ca.cnf -policy policy_anything -out server.pem -infiles server.csr

Kopiera sedan server.key och server.pem enligt httpd-ssl.conf:

cp server.key /opt/coolstack/apache2/ssl.key/server.key cp server.pem /opt/coolstack/apache2/ssl.crt/server.crt

Eventuellt behöver man installera CA-certifikatet, lägg det helt enkelt i .../ssl.crt och skapa sedan en symlänk med hashvärdet:

ln -s df-ca.pem `openssl x509 -noout -hash < df-ca.pem`.0

Finns inte OpenSSL installerat på webservern så kan man ju alltid tjuvkika på maskinen man skapat certifikaten på.

Certifikat för en användares mailkonto

Så här skapas ett personligt certifikat för en användares mailkonto. Detta kan sedan importeras i t.ex. Thunderbird. Följ mallen enligt nedan men byt naturligtvis ut tg@df.lth.se mot aktuell mailadress:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 \ -subj '/CN=tg/C=se/emailAddress=tg@df.lth.se' -keyout tg@df.lth.se.key -out tg@df.lth.se.req

openssl x509 -x509toreq -in tg@df.lth.se.req -signkey tg@df.lth.se.key -out tmp.pem

openssl ca -config ../df-mail.cnf -policy policy_anything -out tg@df.lth.se.pem -infiles tmp.pem

openssl pkcs12 -export -out tg@df.lth.se.pfx -in tg@df.lth.se.pem \ -inkey tg@df.lth.se.key -name "tg@df.lth.se Certificate"

Certifikat för Java-signering

Det här används främst för SSH-pluginen.

keytool -certreq -alias pluginsigner -file javareq.csr keytool -genkey -alias pluginsigner -dname "CN=df.lth.se, O=DF, L=Lund, C=SE" keytool -export -alias pluginsigner -file javareq.der

java ExportPriv ~/.keystore pluginsigner {lösenord} > javakey.pem

openssl x509 -inform der -in javareq.der -outform pem -out javareq.pem

openssl x509 -x509toreq -in javareq.pem -signkey javakey.pem -out tmp.pem

openssl ca -config df-ca.cnf -policy policy_anything -out javacert.pem -infiles tmp.pem

openssl x509 -in javacert.pem -outform der -out javacert.der

Importera CA-certifikatet om det inte är gjort:

keytool -import -alias ca -file df-ca.crt

Nu importerar vi det färdiga certifikatet:

keytool -import -alias pluginsigner -trustcacerts -file javacert.der