2012-06-15 16:14:17 +0000 2012-06-15 16:14:17 +0000
186
186

Hoe voeg je een certificaat autoriteit (CA) toe aan Ubuntu?

Mijn werk heeft besloten om hun eigen certificaat autoriteit (CA) uit te geven om verschillende aspecten van ons werk veilig te behandelen zonder te betalen voor certificaten.

  • Cryptografisch tekenen van e-mails
  • Encrypteren van e-mail inhoud
  • Toegang verlenen tot zaken als het bedrijf IRC klant-certificaat gebaseerd.
  • De sleutels van voormalige werknemers automatisch intrekken

Ze stuurden me een .pem bestand, en ik weet niet zeker hoe ik het moet toevoegen aan mijn Ubuntu-installatie. De verzonden instructies waren: “Dubbelklikken op een Mac zou het moeten installeren.” 

Hoe ga ik verder? Moet ik iets doen met OpenSSL om een .key-, .csr- of .crt-bestand te maken?

Antwoorden (8)

253
253
253
2014-02-19 19:13:09 +0000

Installatie van een CA

Kopieer uw certificaat in PEM formaat (het formaat dat ----BEGIN CERTIFICATE---- bevat) naar /usr/local/share/ca-certificates en geef het een naam met een .crt bestandsextensie.

Voer vervolgens sudo update-ca-certificates uit.

Caveats: Deze installatie heeft alleen betrekking op producten die gebruik maken van deze certificaatwinkel. Sommige producten kunnen andere certificaatwinkels gebruiken; als u die producten gebruikt, moet u dit CA-certificaat ook aan die andere certificaatwinkels toevoegen. Firefox Instructies , Chrome Instructies , Java Instructies )

Het testen van de CA

U kunt controleren of dit werkt door te zoeken naar het certificaat dat u zojuist in /etc/ssl/certs/ca-certificates.crt hebt toegevoegd (dit is slechts een lange lijst van al uw vertrouwde CA’s die bij elkaar horen).

Je kunt ook de OpenSSL’s_client gebruiken door te proberen verbinding te maken met een server waarvan je weet dat die een certificaat gebruikt dat getekend is door de CA die je net hebt geïnstalleerd.

$ openssl s_client -connect foo.whatever.com:443 -CApath /etc/ssl/certs

CONNECTED(00000003)
depth=1 C = US, ST = Virginia, O = "Whatever, Inc.", CN = whatever.com, emailAddress = admin@whatever.com
verify return:1
depth=0 C = US, ST = Virginia, L = Arlington, O = "Whatever, Inc.", CN = foo.whatever.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=Virginia/L=Arlington/O=Whatever, Inc./CN=foo.whatever.com
   i:/C=US/ST=Virginia/O=Whatever, Inc./CN=whatever.com/emailAddress=admin@whatever.com

... snip lots of output ...

    Key-Arg : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1392837700
    Timeout : 300 (sec)
    Verify return code: 0 (ok)

Het eerste waar je naar moet zoeken is de certificaatketen bovenin de uitvoer. Dit zou de CA als uitgever moeten tonen (naast i:). Dit vertelt je dat de server een certificaat presenteert dat is ondertekend door de CA die je installeert.

Ten tweede, zoek naar de verify return code die aan het eind moet worden ingesteld op 0 (ok).

69
69
69
2012-06-15 18:07:40 +0000

Uit het bovenstaande zou ik willen afleiden dat de beste manier om lokale certificaatbestanden in de vertrouwde winkel te krijgen, is om ze in /usr/local/share/ca-certificates te zetten en dan update-ca-certificates te laten draaien. Je hoeft /etc/ssl/certs niet direct aan te raken.

15
15
15
2013-10-10 18:46:49 +0000

De andere antwoorden met betrekking tot update-ca-certificates zijn correct voor applicaties die lezen uit de systeemcertificaatwinkel. Voor Chrome en Firefox, en waarschijnlijk enkele andere, moet het certificaat in de nssdb, de backend voor de Mozilla NSS-bibliotheek, worden gezet.

Vanaf https://code.google.com/p/chromium/wiki/LinuxCertManagement :

Bijvoorbeeld, om een root CA-certificaat te vertrouwen voor het uitgeven van SSL-servercertificaten, gebruik

certutil -d sql:$HOME/. pki/nssdb -A -t “C,” -n {certificaat bijnaam} -i<certificaat bestandsnaam}

Waar <certificate nickname> willekeurig is, en <certificate filename> je .pem of .crt bestand is.

Andere nuttige referenties:

15
15
15
2014-04-30 13:39:09 +0000

Ik had hetzelfde probleem, en ik moest het .pem-bestand kopiëren naar /usr/local/share/ca-certificates, en het hernoemen tot .crt. Het .cer bestand kan eenvoudig worden geconverteerd naar .pem, met openssl, bijvoorbeeld, als je de .pem niet hebt.

Na het kopiëren van het bestand moet je sudo update-ca-certificates uitvoeren.

11
11
11
2015-09-02 06:19:09 +0000

Voor nieuwere builds gebaseerd op Debian, moet u misschien eerst:

sudo dpkg-reconfigure ca-certificates

NOTE: sudo dpkg-reconfigure ca-certificates calls update-ca-certificates intern

U moet natuurlijk nog steeds het certificaat (.crt bestand) kopiëren naar /usr/share/ca-certificates voordat u een van deze dingen doet :)

6
6
6
2018-04-10 01:00:50 +0000

Voortbouwend op dwmw2’s antwoord , kunt u applicaties die NSS gebruiken voor het beheer van certificaten, vertellen dat ze de system trust store gebruiken.

libnss3 wordt standaard geleverd met een alleen-lezen set van root CA-certificaten (libnssckbi.so), dus meestal moet u ze zelf handmatig toevoegen aan de lokale user trust store die zich in $HOME/.pki/nssdb bevindt. p11-kit biedt een drop-in vervanging voor libnssckbi.so die fungeert als een adapter voor de systeembrede root-certificaten die in /etc/ssl/certs zijn geïnstalleerd.

Edit:

Er lijken meer versies van libnssckbi.so te zijn dan alleen in libnss3. Het volgende is een script om ze allemaal te vinden, een back-up te maken en te vervangen door links naar p11-kit:

sudo apt-get update && sudo apt-get install -y p11-kit libnss3
find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do
    sudo mv $line ${line}.bak
    sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line
done

Oorspronkelijke instructies:

Om dit te doen, installeer je p11-kit en libnss3 (als ze nog niet gestolen zijn):

sudo apt-get update && sudo apt-get install -y p11-kit libnss3

en maak je vervolgens een back-up van het bestaande libnssckbi.so dat door libnss3 wordt geleverd:

sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.bak

Maak ten slotte de symbolische link:

sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so

Om te bevestigen dat het werkte, kunt u ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so uitvoeren en het zou de link moeten tonen:

lrwxrwxrwx 1 root root 49 Apr 9 20:28 /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so -> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

Nu, als u een certificaat toevoegt aan de CA-winkel die update-ca-certificates gebruikt, zullen deze certificaten nu beschikbaar zijn voor toepassingen die gebruik maken van NSS (libnss3), zoals Chrome.

3
3
3
2016-12-12 12:36:34 +0000

Zoals opgemerkt, hebben verschillende toepassingen die gebruik maken van NSS een eigen certificatenwinkel. Zoals de zaken er nu voorstaan op Ubuntu, moet u handmatig certutil gebruiken om uw CA’s toe te voegen voor elke toepassing, voor elke gebruiker.

In andere distributies zoals Fedora, werkt dit soort dingen gewoon™ en moet u een bug indienen tegen elke toepassing die niet automatisch de CA’s die u installeert met update-ca-trust vertrouwt.

Je kunt dit ook in Ubuntu oplossen door het p11-kit-modules pakket te installeren en dan de NSS ingebouwde trust roots module te vervangen door p11-kit-trust.so, door een symbolische link te maken van bijvoorbeeld /usr/lib/firefox/libnssckbi.so naar /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

en dan krijg je de geconfigureerde trust roots van het systeem, niet sommige hard-coded. Merk op dat Ubuntu meerdere _verschillende kopieën van die libnssckbi.so bibliotheek met de hard-coded vertrouwensroots verzendt, en dat je ze allemaal moet vervangen!

cf. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285

1
1
1
2018-01-02 12:58:09 +0000

Serieus dom antwoord om hier toe te voegen, maar ik had 2 uur heen en weer gereisd met certutils in linux… Ik was er zeker van dat alles klopte:

hutber@hutber-mint /var/www/asos-mvt-framework $ certutil -L -d sql:${HOME}/.pki/nssdb

Certificate Nickname Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

anyproxy CT,, 
rootCA CT,, 
myasos CT,,

Maar toch, in chroom werkte er niets. Ik heb alles geprobeerd, uiteindelijk…

Restarting Chrome

was de sleutel tot mijn succes na het volgen: Steven Maandag ’s advies