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 disable
smtp: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 enable
smtp: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