Newsgroup: it.comp.os.linux.sys
Titolo: Fetchmail: questione di certificati...

                                      ]
Salve a tutti.
Forse poteva starci anche in icols, ma forse no, va bè.  :-|
Dunque, sto tentando di impostare correttamente fetchmail in
modo da scaricarmi la posta dal server pop di 
lavabit.com
.
===
fetchmail: Server certificate verification error: unable to
get local issuer certificate
fetchmail: Server certificate verification error:
certificate not trusted
fetchmail: Issuer Organization: GoDaddy.com, Inc.
fetchmail: Issuer CommonName: Go Daddy Secure Certification
Authority
fetchmail: Server CommonName: *.
lavabit.com
fetchmail: Subject Alternative Name: *.
lavabit.com
===
Mi da questi errori nei certificati. Anche se poi a dire il
vero (Adesso) i messaggi li scarica lo stesso.
Gorni fà invece avevo provato su slack-11 (ora sono in 12.1)
e non c'era verso di scaricarli. Unica differenza tra le due
configurazioni, ora ho aggiunto keep in modo da lasciare i
messaggi sul server senza cancellarli.
Tuttavia, nonostante funzioni, non vorrei vedere quei
warnings.
---
Ho cercato un po' in rete ed è saltato fuori che il problema
sta in procedure di criptaggio peraltro non richieste...cioè
fetchmail è configurato in modo minimale per quegli account,
tutto in chiaro, niente cose particolari.
Ho pensato anche che di default il loro server tenti
l'autenticazione via ssl/ssh (non so se si dice così...). Ma
non trovando questi beati certificati e comunque le
impostazioni giuste si rifiuta e dà quell'errore,
continuando comunque a lavorare in chiarolasciando perdere
l'ssl.
E' solo una mia ipotesi e vista la presenza nel ng anche di
gente che pare saperne sarei grato se mi si potesse fornire
una spiegazione su questi errori.
Detto questo, in rete ho trovato di gente che voleva far
funzionare fetchmail via ssl, in modo da rendere la
comunicazione più riservata e va bè.
Mi verrebbe da chiadervi, la domanda "più a monte":
ma come faccio a far sparire quegli errori?
In realtà qualcosa ho già letto e a quanto pare si può
aggiungere l'opzione sslfingerprint nel .fetchmailrc con la
giusta "firma" (che si vede dalla sessione di fetchmail).
Questo sembrerebbe risolvere, ma alcuni consigliano una via
più lunga ma probabilmente migliore (anche qui...non so
ditemtelo voi, leggendo oltre).
l'altra via:
scaricare un "certificato" da 
lavabit.com
, creare un file
~/.certs/lavabit.com.crt in cui si andrà a copiare il
certificato che si ottiene col comando:
openssl s_client -connect 
hostname.myisp.com:995
 -showcerts
Poi, si modifica ancora la configurazione di fetchmail
aggiungendo:
sslcertck
sslcertpath ~/.certs
inoltre occorre "aggiornare" la dir dei cartificati:
c_rehash ~/.certs
A quanto pare così mi da ancora errore:
======
fetchmail: Server certificate verification error: unable to
           get local issuer certificate
11658:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE
           :certificate verify failed:s3_clnt.c:951:
fetchmail: SSL connection failed.
======
A questo punto da quanto mi pare di capire dovrebbe mancarmi
ancora un certificato da reperire non presso 
lavabit.com
, ma
presso il "iusser" ovvero un ente che gestisce e mette a
disposizione questi certificati.
Alcuni scrivono che aggiungendo questo certificato alla
directory ~/.certs dovrebbe funzionare.
Ma la domanda è dove lo trovo quel certificato per
lavabit.com
?
Me la date una mano?
e se potete chiarirmi alcuni punti che probabilmente sono ad
occhio confusionari sull'afrgomento ve ne sarei grato.
Grazie mille in anticipo  ;-)

 modo da scaricarmi la posta dal server pop di 
lavabit.com
.
Chiedo scusa per il repost, ma al momento della stesura del
maessaggio originario, mi pareva comunque più attinente a
ICOLI. Visto che non ho ancora ricevuto risposte e vista
comunque la natura "poco comune" forse, della questione, mi
sono deciso a postare anche qui.  :-)
Spero possiate rispondermi.  :-P

 
lavabit.com
?
Ho risolto in qualche modo...ma ho risolto.
- Configurazione certificati:
1. Ho creato una directory nella mia home, chiamata
     ~/.certs questa conterrà questi beati certificati.
2. Ho copiato in quella di il certificato di "
lavabit.com
"
     openssl s_client -connect 
lavabit.com:995
 \
     -showcerts > ~/.certs/lavabit.com.pem 2>&1
     questo crea un file nella dir dei crtificati chaimato
     lavabit.com.pem.
     In questo file ditesto è contenuto il certificato, anzi
     a dirla tutta ve ne sono tre. A naso, ho scelto il
     primo. I certificati sono riconoscibili, in pratica
     sono la parte compresa in "BEGIN CERTIFICATE" e "END
     CERTIFICATE".
     Basta tagliare il file in modo che sia del tipo:
     -----BEGIN CERTIFICATE-----
     blabla
     blabla
     blabla
     -----END CERTIFICATE-----
     Ok. Qui però ci sta la "domandona": ma glia ltri due
     certificati presenti nel file così creato, a che
     servono? cosa sono? in pratica, quale senso ha mettere
     3 certificati?
     Sempre nel file inizialmente creato (cioè non tagliato)
     si vede il sito del "certificatore":
 
http://certificates.godaddy.com/repository
     và annotato da qualche parte prima di tagliare il file.
3. Ho reperito presso il sito annotato prima, un'altro
     certificato: anche sta volta scegliendolo "a
     sentimento". Quindi anche qui, i chiarimenti sul
     criterio di scelta da effettuare sarebbero molto
     graditi.
     ===
     ValiCert Legacy Certificate Chain
         * ValiCert Root Certificate
	           o valicert_class2_root.crt
		   o Certificate Thumbprint  Algorithm: sha1
                   o Certificate Thumbprint: blabla
     ===
     Insomma quello riportato sopra è il file che ho scelto,
     ho scricato il .crt e l'ho rinominato in:
     ~/.cert/valicert_class2_root.crt.pem
4. Infine, si deve dare un comando:
     c_rehash ~/certs
     Con questo i certificati dovrebbero essere "configurati"
     correttamente.
- Configurazione di fetchmail: .fetchmailrc
  =====
    poll 
lavabit.com
    protocol pop3
    username 
utente.su.lavabit.com
 is utente.login
    password password.lavabit
    keep
    wants options mda "/usr/bin/procmail -d %T"
    ssl
    #sslfingerprint
    "3D:AF:ED:28:10:6B:47:C4:51:21:2F:2F:C0:AF:39:D2"
    sslcertck
    sslcertpath /home/utente.login/.certs
  =====
  Ok. le righe importanti da aggiungere sono le ultime due
  sslcertck
  sslcertpath ecc ecc
  la riga "ssl"...non so, googolando avevo visto che in
  alcuni esempi c'era...e l'ho messa, magari non è
  indispensabile.
  La riga commentata "#sslfingerprint blablabla" risolveva i
  warnings se decommentata, senza fare tutto questo
  workaround. Non so alla fine che differenza ci sia tra il
  decommentare quella riga e configurare quei certificati
  come ho fatto...anche qui altra domanda per voi  ;-)
In ogni caso tutta questa serie di operazioni ha risolto i
warnings che lamentava la sessione POP di fetchmail. Un link
utile e sintetico:
http://geekmush.wordpress.com/2007/06/29
 (vado a capo...)
     /how-to-make-fetchmail-happy-with-the-servers-ssl-cert/
Vi ringrazio in anticipo nel caso vogliate/sappiate
rispondermi alle domande poste...
Per il resto spero possa servire anche ad altri l'aver
esposto questa esperienza.   :-P

                                 > ~/certs/pop.mail.yahoo.it.pem
Si, ok, questo copia (mi pare tutti) i certificati e li
sputa in un file .pem. E' molto simile a quanto ho fatto io
solo che nel mio caso dopo mi sono dovuto rielaborare il
file tagliando le parti in più a mano.
Io però mi sto chiedendo perchè vi sono tre certificati
interrogando il server 
lavabit.com
? Che significato hanno?

 interrogando il server 
lavabit.com
? Che significato hanno?
Perché il loro certificato è firmato da una sub-ca, quindi da una CA non 
primaria di cui il tuo browser non si fiderebbe. Per questo motivo nel 
certificato proveniente dal server viene inclusa la CA di secondo 
livello (trusted, perché firmata da una di primo livello da te 
riconosciuta) e poi il certificato di 
lavabit.com
Angelo


Grazie per la risposta.  :-)
Più o meno mi sono fatto un'idea, ma ho ancora parecchia
confusione a riguardo...
Vediamo l'esempio specifico di 
lavabit.com
.
Quando dò il comando
 openssl s_client -connect 
lavabit.com:995
 -showcerts
appare la pagina contente i certificati. Tale pagina la
riporto in modo da potrevi fare riferimento nello specifico.
(cihedo scusa per le righe tagliate...comunque si dovrebbe capire)
=====
CONNECTED(00000003)
---
Certificate chain
 0 s:/O=*.
lavabit.com/OU=Domain
 Control Validated/CN=*.
lavabit.com
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com,
   Inc./OU=
http://certificates.godaddy.com/repository/CN=Go
    Daddy Secure Certification Authority/serialNumber=07969287
    -----BEGIN CERTIFICATE-----
    MIIE6DCCA9CgAwIBAgIDP4aDMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
    [...]
    -----END CERTIFICATE-----
 1 s:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2
 Certification Authority
    i:/L=ValiCert Validation Network/O=ValiCert,
    Inc./OU=ValiCert Class 2 Policy Validation
    Authority/CN=
http://www
.
 
valicert.com//emailAddress=in...@valicert.com
    -----BEGIN CERTIFICATE-----
    MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh
    [...]
    -----END CERTIFICATE-----
 2 s:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com,
   Inc./OU=
http://certificates.godaddy.com/repository/CN=Go
    Daddy Secure Certification Authority/serialNumber=07969287
    i:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2
    Certification Authority
    -----BEGIN CERTIFICATE-----
    MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx
    -----END CERTIFICATE-----
---
Server certificate
subject=/O=*.
lavabit.com/OU=Domain
 Control
Validated/CN=*.
lavabit.com
issuer=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com,
Inc./OU=
http://certificates.godaddy.com/repository/CN=Go
Daddy Secure Certification Authority/serialNumber=07969287
---
No client certificate CA names sent
---
SSL handshake has read 3957 bytes and written 316 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol  : TLSv1
Cipher    : AES256-SHA
Session-ID:
7EC80BD7F27D19FAFD3126AC33CFF664F4B33F661996CEB5F2F34DB4D9150D35
Session-ID-ctx:
Master-Key: 64425ED3C78937A4C9850396E2D8CEDBE9BCFA73D5899E11ABDD
 49C06A3B2786A69706B75914FAAAAF06EDCC6DF268B6
Key-Arg   : None
Start Time: 1217231114
Timeout   : 300 (sec)
Verify return code: 20
(unable to get local issuer certificate)
---
+OK lavad
=======================
Ecco, questo è quanto ottengo dalla "sessione openssl" verso
lavabit.com
.
Come si vede ci sono ben 3 certificati.
Due domande:
1- potreste spiegarmi cosa rappresenta ciascun specifico
certificato? cioè proprio del tipo: il primo è.... e serve
per.., il secondo è... ed è necessario perchè...,
l'ultimo... (insomma penso di aver fatto capire la domanda :-) )
2- Nell'ottica di quanto visto dalla sessione ssl, e alla
luce delle risposte alla domanda precedente, come
va configurato fetchmail per la ricezione dei messaggi di
posta da 
lavabit.com
, quali certificati servono veramente,
quali possono essere ommessi. Chiedo questo, perchè se
leggete il thread dall'inizio vi accorgerete che per far
rientrare diversi warnings di fetchmail ho cercato di
sistemare i certificati "alla cieca" e mi piacerebbe capire
se c'erano altri modi magari più semplici e perchè quello
che ho seguito ha funzionato anch'esso...
Spero nella vostra disponibilità. Comunque grazie ancora in
ogni caso per le risporte e i chiarimenti fin qui pervenuti.
Saluti.  :-P