Eu precisava do meu script para enviar um email para o administrador se houver algum problema, e a empresa usar apenas o Gmail. Seguindo algumas instruções, eu consegui configurar o mailx usando um arquivo .mailrc. primeiro houve o erro do nss-config-dir, resolvi isso copiando alguns arquivos .db de um diretório do firefox. para ./certs e com o objetivo em mailrc. Um email foi enviado.
No entanto, o erro acima surgiu. Por algum milagre, havia um certificado do Google no .db. Ele apareceu com este comando:
~]$ certutil -L -d certs
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
GeoTrust SSL CA ,,
VeriSign Class 3 Secure Server CA - G3 ,,
Microsoft Internet Authority ,,
VeriSign Class 3 Extended Validation SSL CA ,,
Akamai Subordinate CA 3 ,,
MSIT Machine Auth CA 2 ,,
Google Internet Authority ,,
Provavelmente, isso pode ser ignorado, porque o email funcionou de qualquer maneira. Finalmente, depois de puxar um pouco de cabelo e de muitos óculos, descobri como me livrar do aborrecimento.
Primeiro, exporte o certificado existente para um arquivo ASSCII:
~]$ certutil -L -n 'Google Internet Authority' -d certs -a > google.cert.asc
Agora reimporte esse arquivo e marque-o como confiável para certificados SSL, ala:
~]$ certutil -A -t "C,," -n 'Google Internet Authority' -d certs -i google.cert.asc
Depois disso, a listagem mostra que é confiável:
~]$ certutil -L -d certs
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
...
Google Internet Authority C,,
E o mailx envia sem problemas.
~]$ /bin/mailx -A gmail -s "Whadda ya no" somebody@acompany.com
ho ho ho
EOT
~]$
Espero que seja útil para alguém que deseja concluir o erro.
Além disso, estou curioso sobre algumas coisas.
Como eu poderia obter esse certificado, se não estivesse no banco de dados do mozilla por acaso? Existe, por exemplo, algo assim?
~]$ certutil -A -t "C,," \
-n 'gmail.com' \
-d certs \
-i 'http://google.com/cert/this...'
openssl s_client -showcerts -connect smtp.gmail.com:465 </dev/null
para vê-los todos.