Denne siden er arkivert, og kan inneholde utdatert, gammel eller feil informasjon.
OpenSSL
Samfundet bruker nå letsencrypt for utstedelse av sertifikater.
Innlogging på StartSSL
StartSSL krever login med sertifikat, og har derfor en litt spesiell metode for å logge inn. Sertifikatet vi bruker er lagret (kryptert med passord) i en iceweasel-profil på felles/startssl/iceweasel-profile/. For å bruke denne setter du deg på en arbeidsstasjon (eller logger inn på en med ssh -X) og kjører iceweasel -P. Deretter velger du create profile, kjører gjennom den og velger den nevnte mappa for profilen. Ved senere anledninger kan du bruke denne profilen ved å kjøre iceweasel -P profilnavn. Ved innlogging på startssl.com velger du sertifikatet og skriver inn riktig passord.
Oppretting av sertifikat på StartSSL
- bjeff:~/samfundet-ca# ./ca.sh -req domene
- Gå til startssl.com.
- Hvis det er mer enn 30 dager siden sist domene validert må domenet valideres på ny via Validations Wizard.
- Gå til Certificates Wizard
- Velg Web Server SSL/TLS Certificate.
- Velg Skip og kopier innholdet fra domene/domene.req i boksen.
- Velg riktig domene, og skriv inn subdomene i neste steg. Vi har egne sertifikater for hvert subdomene, og benytter oss ikke av SubjectAltName, så legg kun til et subdomene her.
- Velg Continue for å fullføre.
- Legg domene.key fra bjeff og domene.crt som lastes ned fra startssl.com på ønsket sted.
Debug tips
Bruk echo | openssl s_client -connect billig.samfundet.no:443 -servername billig.samfundet.no | openssl x509 -noout -text for å koble til og printe ut informasjon om sertifikatet som er i bruk. Bare openssl s_client -connect billig.samfundet.no:443 -servername billig.samfundet.no can brukes om du vil koble til tilsvarende man gjør med netcat billig.samfundet.no 80 for manuell testing av HTTP. Videre er det smart å kjøre apache2ctl -S for å finne ut hvilken named virtualhost som svarer deg, her oppstår det ofte feil når folk setter opp. -starttls imap / -starttls smtp kan gis til s_client for debugging av mail sertifikat.
Hvordan lage og signere diverse selvsignerte sertifikat
Denne guiden er egentlig ikke nødvendig lengre, siden vi kun benytter oss av sertifikater fra StartSSL nå (med noen unntak, se oversikt nederst), men står her fortsatt for historisk oversikt og i fall noen skulle ønske å signere sertifikat selv allikevel.
Før hadde vi noen veldig fine perlscript som fikset alt fint og bra for oss, men disse støttet dessverre ikke 'Subject Alt name' som vi ønsker å bruke for å få flere ssl-vhoster på én IP (wiki.cacert.org for mer info). Derfor har vi nå et nokså enkelt lite shellscript som er laget for å spesifikt løse det mest vanlige usecaset vårt (for mer avanserte ting, lær deg å bruke openssl uten wrapperscript).
For å prøve å gjøre ting enklest mulig har vi hardkodet det meste vi trenger i openssl.cnf'en vi bruker og har noen linjer som '# commonName_default=REPLACE' og '# subjectAltName=REPLACE' som scriptet erstatter. Verdiene for disse hentes fra kommandolinja og fra fila conf/navn-på-common-name, verdiene i denne fila brukes til å generere subjectAltName-linja i ssl-configen. conf/navn-på-common-name skal inneholde ett DNS-navn per linje, og sertifikatet vil være gyldig for alle disse i tillegg til CN (CN bør også tas med i denne fila).
I forhold til tidligere praksis legges det nå opp til at vi skal revoke og signe request på nytt for å gjøre ting litt mer ryddig.
# ./ca.sh Usage: -(reqsign|req|sign|resign|revoke) common-name
Helt nytt sertifikat
#./ca.sh -req itk.samfundet.no Generating a 1024 bit RSA private key ...........++++++ ..++++++ writing new private key to 'itk.samfundet.no/itk.samfundet.no.key' ––- #./ca.sh -sign itk.samfundet.no Using configuration from /tmp/ssl-GdnDVd Enter pass phrase for ./ca/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 61 (0x3d) Validity Not Before: Sep 20 19:59:26 2007 GMT Not After : Sep 19 19:59:26 2008 GMT Subject: countryName = NO stateOrProvinceName = N/A organizationName = Studentersamfundet i Trondhjem organizationalUnitName = IT-Komiteen commonName = itk.samfundet.no emailAddress = itk@samfundet.no X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 8C:55:DA:30:C2:E4:E0:1F:4C:BF:B6:24:7B:A7:94:57:11:4B:E9:3F X509v3 Authority Key Identifier: keyid:B3:00:5F:69:12:EC:ED:D0:2F:31:26:5F:5C:90:42:FA:23:53:12:E2 DirName:/C=NO/ST=N/A/L=Trondheim/O=Studentersamfundet i Trondhjem/OU=IT-Komiteen/CN=samfundet.no/emailAddress=itk@samfundet.no serial:00 X509v3 Subject Alternative Name: DNS:itk.samfundet.no, DNS:billig-*.samfundet.no, DNS:mdb2-*.samfundet.no, DNS:planet.samfundet.no, DNS:robokop.samfundet.no, DNS:secure.samfundet.no, DNS:traske.samfundet.no Certificate is to be certified until Sep 19 19:59:26 2008 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
Fornye sertifikat
# ./ca.sh -resign itk.samfundet.no Using configuration from /tmp/ssl-x6Rvcv Enter pass phrase for ./ca/private/cakey.pem: Revoking Certificate 3D. Data Base Updated Using configuration from /tmp/ssl-x6Rvcv Enter pass phrase for ./ca/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 62 (0x3e) Validity Not Before: Sep 20 20:01:52 2007 GMT Not After : Sep 19 20:01:52 2008 GMT Subject: countryName = NO stateOrProvinceName = N/A organizationName = Studentersamfundet i Trondhjem organizationalUnitName = IT-Komiteen commonName = itk.samfundet.no emailAddress = itk@samfundet.no X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 8C:55:DA:30:C2:E4:E0:1F:4C:BF:B6:24:7B:A7:94:57:11:4B:E9:3F X509v3 Authority Key Identifier: keyid:B3:00:5F:69:12:EC:ED:D0:2F:31:26:5F:5C:90:42:FA:23:53:12:E2 DirName:/C=NO/ST=N/A/L=Trondheim/O=Studentersamfundet i Trondhjem/OU=IT-Komiteen/CN=samfundet.no/emailAddress=itk@samfundet.no serial:00 X509v3 Subject Alternative Name: DNS:itk.samfundet.no, DNS:billig-*.samfundet.no, DNS:mdb2-*.samfundet.no, DNS:planet.samfundet.no, DNS:robokop.samfundet.no, DNS:secure.samfundet.no, DNS:traske.samfundet.no Certificate is to be certified until Sep 19 20:01:52 2008 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
Ugyldiggjøre gammelt sertifikat
# ./ca.sh -revoke itk.samfundet.no Using configuration from /tmp/ssl-tOuEoI Enter pass phrase for ./ca/private/cakey.pem: Revoking Certificate 3E. Data Base Updated
Legge til ekstra subjectaltname på eksisterende sertifikat
# echo itk-foobar.samfundet.no >> conf/itk.samfundet.no # ./ca.sh -resign itk.samfundet.no …
Installering av nye sertifikater
Sertifikatet som genereres legges i mappen som heter det samme CN som du lager til, feks:
itk.samfundet.no/ |– itk.samfundet.no.crt Selve sertifikatet |– itk.samfundet.no.pem crt og key i samme fil |– itk.samfundet.no.key Privat nøkkel til sertifikatet `– itk.samfundet.no.req Forespørselen
Disse kan så legges på rett plass i forhold til tjennesten du skal lage nye sertifikat til (se tabellen under). Vær snill og ikke slett sertifikatene slik at det er enkelt å revoke og signere nye.
Husk chmod/chown og husk å restarte/reloade evt. tjenester som bruker disse sertifikatene.
Sjekking av utløpsdato for sertifikater
/usr/local/sbin på cass har et enkelt skript check_cert_expiry som kobler på alle portene skriptet vet om og rapporterer utløpsdato. For å få en forhåndsvarsling om når ting går kjøres denne i cron en gang i uken og gir beskjed om alt som løper ut innen de to neste ukene.
Sertifikater og hvor de ligger
Oversikten er sortert etter utløpsdato. Vennligst behold den sortert slik når du oppdaterer.
CN | CA | Utløpsdato | Bruksområde | Maskin | Sti til sertifikat | Sti til hemmelig nøkkel |
---|---|---|---|---|---|---|
sql.samfundet.no | Samfundet CA | PostgreSQL | cirkus | /etc/postgresql-common/sql.samfundet.no.crt | /etc/postgresql-common/sql.samfundet.no.key | |
acl.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/acl.samfundet.no/fullchain.pem | /etc/letsencrypt/live/acl.samfundet.no/privkey.pem | |
itk.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/itk.samfundet.no/fullchain.pem | /etc/letsencrypt/live/itk.samfundet.no/privkey.pem | |
traske.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/traske.samfundet.no/fullchain.pem | /etc/letsencrypt/live/traske.samfundet.no/privkey.pem | |
ufs.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/ufs.samfundet.no/fullchain.pem | /etc/letsencrypt/live/ufs.samfundet.no/privkey.pem | |
webmail.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/webmail.samfundet.no/fullchain.pem | /etc/letsencrypt/live/webmail.samfundet.no/privkey.pem | |
wiki.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/wiki.samfundet.no/fullchain.pem | /etc/letsencrypt/live/wiki.samfundet.no/privkey.pem | |
medlem.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/medlem.samfundet.no/fullchain.pem | /etc/letsencrypt/live/medlem.samfundet.no/privkey.pem | |
pst.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/pst.samfundet.no/fullchain.pem | /etc/letsencrypt/live/pst.samfundet.no/privkey.pem | |
gs.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/gs.samfundet.no/fullchain.pem | /etc/letsencrypt/live/gs.samfundet.no/privkey.pem | |
*.mdb2.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/andrkn.mdb2.samfundet.no/fullchain.pem | /etc/letsencrypt/live/andrkn.mdb2.samfundet.no/privkey.pem | |
*.billig.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/edgarmv.billig.samfundet.no/fullchain.pem | /etc/letsencrypt/live/edgarmv.billig.samfundet.no/privkey.pem | |
dyrt.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/dyrt.samfundet.no/fullchain.pem | /etc/letsencrypt/live/dyrt.samfundet.no/privkey.pem | |
billig.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/billig.samfundet.no/fullchain.pem | /etc/letsencrypt/live/billig.samfundet.no/privkey.pem | |
samba.samfundet.no | LE | Web | cassarossa | /etc/letsencrypt/live/samba.samfundet.no/fullchain.pem | /etc/letsencrypt/live/samba.samfundet.no/privkey.pem | |
billettsalg.samfundet.no | StartCom | 2017-06-30 | Web | okkupasjon | ||
smtp.samfundet.no | LE | Epost (SMTP) | cassarossa | /etc/exim4/ssl/fullchain.pem | /etc/exim4/ssl/privkey-pem | |
*.uka.no | LE | Web | cirkus | /etc/letsencrypt/live/blix.uka.no/fullchain.pem | /etc/letsencrypt/live/blix.uka.no/privkey.pem | |
*.ufs.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/edgarmv.ufs.samfundet.no/fullchain.pem | /etc/letsencrypt/live/edgarmv.ufs.samfundet.no/privkey.pem | |
vk.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/vk.samfundet.no/fullchain.pem | /etc/letsencrypt/live/vk.samfundet.no/privkey.pem | |
sikring.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/sikring.samfundet.no/fullchain.pem | /etc/letsencrypt/live/sikring.samfundet.no/privkey.pem | |
www.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/www.samfundet.no/fullchain.pem | /etc/letsencrypt/live/www.samfundet.no/privkey.pem | |
nagios.samfundet.no | StartCom | 2017-01-29 | Web | nagios | /etc/apache2/ssl/nagios.samfundet.no.crt | /etc/apache2/ssl/nagios.samfundet.no.key |
munin.samfundet.no | LE | Web | altersex | /etc/letsencrypt/live/munin.samfundet.no/fullchain.pem | /etc/letsencrypt/live/munin.samfundet.no/fullchain.pem | |
rt.samfundet.no | LE | Web | cassarossa | /etc/letsencrypt/live/rt.samfundet.no/fullchain.pem | /etc/letsencrypt/live/rt.samfundet.no/privkey.pem | |
wpkg.samfundet.no | LE | Web | cassarossa | /etc/letsencrypt/live/wpkg.samfundet.no/fullchain.pem | /etc/letsencrypt/live/wpkg.samfundet.no/privkey.pem | |
eximstats.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/eximstats.samfundet.no/fullchain.pem | /etc/letsencrypt/live/eximstats.samfundet.no/privkey.pem | |
imap.samfundet.no | LE | Epost (IMAP) | cassarossa | /etc/dovecot/ssl/imap.samfundet.no.le.fullchain.crt | /etc/dovecot/ssl/imap.samfundet.no.le.key | |
nliv.uka.no | LE | Web | cirkus | /etc/letsencrypt/live/nliv.uka.no/fullchain.pem | /etc/letsencrypt/live/nliv.uka.no/privkey.pem | |
robokop.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/robokop.uka.no/fullchain.pem | /etc/letsencrypt/live/robokop.uka.no/privkey.pem | |
sg.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/sg.samfundet.no/fullchain.pem | /etc/letsencrypt/live/sg.samfundet.no/privkey.pem | |
start.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/start.samfundet.no/fullchain.pem | /etc/letsencrypt/live/start.samfundet.no/privkey.pem | |
stats.uka.no | LE | Web | cirkus | /etc/letsencrypt/live/stats.uka.no/fullchain.pem | /etc/letsencrypt/live/stats.uka.no/privkey.pem | |
wlan.samfundet.no | LE | Web | altersex | /etc/letsencrypt/live/wlan.samfundet.no/fullchain.pem | /etc/letsencrypt/live/wlan.samfundet.no/privkey.pem | |
lists.samfundet.no | LE | Web | cassarossa | /etc/letsencrypt/live/lists.samfundet.no/fullchain.pem | /etc/letsencrypt/live/lists.samfundet.no/privkey.pem | |
www-rails.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/www-rails.samfundet.no/fullchain.pem | /etc/letsencrypt/live/www-rails.samfundet.no/privkey.pem | |
bugs.uka.no | LE | Web | cirkus | /etc/letsencrypt/live/bugs.uka.no/fullchain.pem | /etc/letsencrypt/live/bugs.uka.no/privkey.pem | |
robokop.uka.no | LE | Web | cirkus | /etc/letsencrypt/live/robokop.uka.no/fullchain.pem | /etc/letsencrypt/live/robokop.uka.no/privkey.pem | |
fg.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/fg.samfundet.no/fullchain.pem | /etc/letsencrypt/live/fg.samfundet.no/privkey.pem | |
foto.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/foto.samfundet.no/fullchain.pem | /etc/letsencrypt/live/foto.samfundet.no/privkey.pem | |
dg.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/dg.samfundet.no/fullchain.pem | /etc/letsencrypt/live/dg.samfundet.no/privkey.pem | |
rss.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/rss.samfundet.no/fullchain.pem | /etc/letsencrypt/live/rss.samfundet.no/privkey.pem | |
www-beta.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/www-beta.samfundet.no/fullchain.pem | /etc/letsencrypt/live/www-beta.samfundet.no/privkey.pem | |
plakat.samfundet.no | LE | Web | cirkus | /etc/letsencrypt/live/plakat.samfundet.no/fullchain.pem | /etc/letsencrypt/live/plakat.samfundet.no/privkey.pem |
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2020-10-06 11:03 | Revisjon: 149 (historie, blame) | Totalt: 1905 kB | Rediger