<<< Date Index >>>     <<< Thread Index >>>

accecepted ssl certificate suddenly not remembered



Hi,

I am running mutt from the official Ubuntu Hardy repository on a x86_64 
server. As of today, mutt is no longer able to remember previously 
accepted SSL certificates and is unable to the certificate_file. 

When I remove the default $certificate_file, first time I startup mutt 
it will present me with some details of the certificate and asks me to 
reject it, accept it once or accept it permanently. When I choose the 
latter, I can proceed using mutt. Then, after closing and restarting 
mutt, it will show me the certificate again, it will ask me the same 
question, but it's no longer possible to save it. It will barf back a 
warning: "couldn't save certificate". 

I can't think of a reason for this to suddenly popup. Certificate hasn't 
changed, I haven't made a change to mutt or it's environment (or at 
least, I can remember...).

A small snippet from a strace:

 | write(1, "\33[H\33[0;10;1m\33[33m\33[41m-- Mutt: TLS/SSL Certificate 
check\33[K\r\n\33[0;10m\33[37mThis certificate belongs to:\r\n
 |    rejo.zenger.nl\r\n   rej"..., 565) = 565
 | rt_sigaction(SIGINT, {0x4645d0, [], SA_RESTORER, 0x7f536d000100}, NULL, 8) = 0
 | read(0, "a", 1)                         = 1
 | rt_sigaction(SIGINT, {0x4645d0, [], SA_RESTORER|SA_RESTART, 0x7f536d000100}, 
NULL, 8) = 0
 | open("/home/rejo/.mutt_certificates", O_WRONLY|O_CREAT|O_APPEND, 0666) = 5
 | fstat(5, {st_mode=S_IFREG|0600, st_size=2538, ...}) = 0
 | mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f536c2fc000
 | fstat(5, {st_mode=S_IFREG|0600, st_size=2538, ...}) = 0
 | lseek(5, 2538, SEEK_SET)                = 2538
 | close(5)                                = 0
 | munmap(0x7f536c2fc000, 4096)            = 0
 | write(1, "\7", 1)                       = 1
 | write(1, "\r\33[43d\33[31mWarning: Couldn\'t save 
certificate\33[37m\33[K\33[39m\33[0;10m", 65) = 65
 | rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
 | rt_sigaction(SIGCHLD, NULL, {0x464260, [], 
SA_RESTORER|SA_RESTART|SA_NOCLDSTOP, 0x7f536d000100}, 8) = 0
 | rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 | nanosleep({2, 0}, {2, 0})               = 0
 | write(1, "\r\33[37mSSL/TLS connection using TLS 1.0 (DHE RSA/AES 256 
CBC/SHA)\33[39m\33[0;10m", 76) = 76

The file to save it to does exist, seems to be a correctly formatted 
file and has the right permissions: 

 | rejo@trillian:~$ head -4 /home/rejo/.mutt_certificates 
 | #H localhost 816B 21E4 F1D3 EFF6 9D30 085E 524B DEFC
 | -----BEGIN CERTIFICATE-----
 | MIIDXDCCAsWgAwIBAgIJAKedR4iKYzkZMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNV
 | BAYTAk5MMQswCQYDVQQIEwJaSDESMBAGA1UEBxMJUm90dGVyZGFtMRAwDgYDVQQK 

 | rejo@trillian:~$ ls -la .mutt_certificates 
 | -rw------- 1 rejo rejo 2538 2009-07-09 17:51 .mutt_certificates
  
 | rejo@trillian:~$ lsattr .mutt_certificates
 | ------------------ .mutt_certificates

Now, I have found others having the same problem. But, apart from a few 
workarounds, I haven't been able to find the real cause (and the proper 
solution). 

So, for one reason or another mutt is unable to find the alredy present 
certificate in the file and is then unable to add. Anyone sees why this 
happens?

-- 
Rejo Zenger . <rejo@xxxxxxxxx> . 0x21DBEFD4 . <https://rejo.zenger.nl>
GPG encrypted e-mail prefered. 

Attachment: signature.asc
Description: Digital signature