Necesitaba mi script para enviar un correo electrónico al administrador si hubiera un problema, y la compañía solo usa Gmail. Siguiendo algunas instrucciones de publicaciones pude configurar mailx usando un archivo .mailrc. Primero estaba el error de nss-config-dir. Lo resolví copiando algunos archivos .db de un directorio de Firefox. a ./certs y apuntando a ello en mailrc. Un correo fue enviado.
Sin embargo, el error anterior apareció. Por algún milagro, había un certificado de Google en el .db. Apareció con 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 ,,
Lo más probable es que se pueda ignorar, porque el correo funcionó de todos modos. Finalmente, después de tirar un poco de pelo y muchas gafas, descubrí cómo deshacerme de la molestia.
Primero, exporte el certificado existente a un archivo ASSCII:
~]$ certutil -L -n 'Google Internet Authority' -d certs -a > google.cert.asc
Ahora vuelva a importar ese archivo y márquelo como confiable para los certificados SSL, ala:
~]$ certutil -A -t "C,," -n 'Google Internet Authority' -d certs -i google.cert.asc
Después de esto, el listado muestra que es confiable:
~]$ certutil -L -d certs
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
...
Google Internet Authority C,,
Y mailx envía sin problemas.
~]$ /bin/mailx -A gmail -s "Whadda ya no" somebody@acompany.com
ho ho ho
EOT
~]$
Espero que sea útil para alguien que quiera terminar con el error.
Además, tengo curiosidad por algo.
¿Cómo podría obtener este certificado, si no estuviera en la base de datos de Mozilla por casualidad? ¿Hay, por ejemplo, algo como esto?
~]$ 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 verlos a todos.