OpenSSL signeren van mail

Pagina: 1
Acties:

  • siepeltjuh
  • Registratie: Maart 2003
  • Niet online
Ik komt niet helemaal uit het volgende:
Voor een test systeem zou ik graag een certificaat genereren om email mee te signen. Het signen van de email zelf gebeurt binnen PHP, dat is opzich geen punt, hier heb ik al code voor gevonden.
Het stuk code heeft echter een certificaat nodig.

Met openSSL heb ik reeds een CA certificaat gegenereerd en een ander server certificaat voor een https ssl apache2 installatie gegenereerd d.m.v dat CA certificaat. Dat werkt perfect.

Het gaat erom dat ik nu nog een certificaat genereer dmv openssl, wat moet ik daarvoor precies doen? Ik kan op internet hier geen documentatie over vinden. google resultaten zijn erg vertroebelt aangezien mail een optioneel onderdeel van het CA cert is.

Can`t live without the mods


Verwijderd

Waarom niet PGP, dit is een stuk makkelijker! Een pgp certificaat kan je zo genereren (zo nodig via seahorse). Hier een voorbeeld

SSL kan je beter gebruiken voor het beveiligen van verbindingen.

Edit: Ik weet niet precies wat je wil, maar Wikipedia: DomainKeys Identified Mail kan ook een uitkomst bieden (icm openspf).

[ Voor 27% gewijzigd door Verwijderd op 27-10-2009 18:54 ]


  • siepeltjuh
  • Registratie: Maart 2003
  • Niet online
PGP is ook leuk, maar ik wou het graag via deze weg oplossen. Later wordt er nog veel meer aan toegevoegd in een windows omgeving.

Can`t live without the mods


Verwijderd

PGP is helemaal niet makkelijker. Veel mailclients ondersteunen gewoon digital id's. Volgens mij moet je dan een CSR certificaat genereren met je naam als common name en je email adres, en dan het certificaat signen met je CA en het gesignede certificaat (X.509) + de key converteren naar PKCS#12.

SSL is inderdaad voor het beveiligen van sockets / verbindingen. Eigenlijk gaat dat via X.509, wat het standaard formaat is voor SSL certificaten, maar die kun je dus gewoon converteren. OpenSSL komt met libcrypto die gewoon allerlei soorten encryptie ondersteunt. Dat is niet alleen voor het beveiligen van TCP connecties.

  • siepeltjuh
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op dinsdag 27 oktober 2009 @ 19:36:
Volgens mij moet je dan een CSR certificaat genereren met je naam als common name en je email adres, en dan het certificaat signen met je CA en het gesignede certificaat (X.509) + de key converteren naar PKCS#12.
Kijk dat is waar ik naar opzoek ben. Kan je dit wat gedetaileerder uitleggen, want dit is dus waar ik tegen aanloop. Hier zijn wat tegenstrijdige berichten over.
Vooral moet ik nu mijn naam of mijn adres als CN of een combinatie daarvan (en in welk formaat) moet ik dat opgeven.

Can`t live without the mods


Verwijderd

siepeltjuh schreef op dinsdag 27 oktober 2009 @ 20:19:

Kijk dat is waar ik naar opzoek ben. Kan je dit wat gedetaileerder uitleggen, want dit is dus waar ik tegen aanloop. Hier zijn wat tegenstrijdige berichten over.
Vooral moet ik nu mijn naam of mijn adres als CN of een combinatie daarvan (en in welk formaat) moet ik dat opgeven.
Common Name = Pietje Puk
Email Address = piet@pietjepuk.nl

De rest van het certificaat is niet zo belangrijk als je een self-signed CA gebruikt.

Voor een VeriSign digital ID is dat bijvoorbeeld:

OU = Digital ID Class 1 - Netscape Full Service
OU = Persona Not Validated
OU = www.verisign.com/repository/RPA Incorp. by Ref.,LIAB.LTD(c)98
OU = VeriSign Trust Network
O = VeriSign, Inc.

Vervolgens met openssl:
openssl pkcs12 -export -in certificaat.crt -inkey private.key -out digital-id.p12

Wachtwoord 2x invoeren voor het exporteren, en bij het importeren in je email client moet je datzelfde wachtwoord weer gebruiken.

  • siepeltjuh
  • Registratie: Maart 2003
  • Niet online
Kijk dat is nu info waar ik wat mee kan. Met een half uurtje ben ik thuis en ga ik er mee aan de slag. Ik hoop dat ik in het PHP script ook het password gebeuren kan afvangen, maar goed dat zien we dan wel weer.

(PHP is in dit geval de mailclient)

Can`t live without the mods


Verwijderd

siepeltjuh schreef op dinsdag 27 oktober 2009 @ 21:18:
Ik hoop dat ik in het PHP script ook het password gebeuren kan afvangen,
Dat kan, zie -passin en -passout, of
man pkcs12


En voor openssl ca kun je eventueel -batch gebruiken om het genereren te automatiseren zonder dat er vragen worden gesteld. Op die manier kun je met PHP certificaten genereren en converteren naar PKCS #12 en supplyen via de browser. Ze kunnen uiteraard ook in een browser worden geïnstalleerd als identificatiemechanisme. Dat werkt ook behoorlijk leuk en veilig. Je kunt bijvoorbeeld Apache zo configureren dat je verplicht een geldig client certificate moet hebben om via HTTPS een applicatie te kunnen benaderen.

  • siepeltjuh
  • Registratie: Maart 2003
  • Niet online
Hier stond een verhaal dat het niet werkte, iets met een typo enzo, maar het is toch gelukt:

code:
1
2
3
openssl req -new -nodes -out email.req.pem -keyout private/email.key.pem -config conf/caconfig.cnf
openssl ca -out certs/mail.cert.pem -config conf/caconfig.cnf -infiles mail.req.pem
openssl pkcs12 -export -in mail.req.pem -inkey private/mail.pem -out digital-id.p12


Het is niet om via PHP de certificaten te gaan genereren, maar om emails mee te en/decrypten.

[ Voor 78% gewijzigd door siepeltjuh op 28-10-2009 02:00 ]

Can`t live without the mods

Pagina: 1