Potrzebowałem skryptu, aby wysłać e-maila do administratora, jeśli występuje problem, a firma korzysta tylko z Gmaila. Postępując zgodnie z instrukcjami dotyczącymi kilku postów, mogłem skonfigurować mailx przy użyciu pliku .mailrc. najpierw pojawił się błąd nss-config-dir Rozwiązałem to, kopiując niektóre pliki .db z katalogu Firefox. do ./certs i celowanie w mailrc. Wiadomość została wysłana.
Jednak pojawił się powyższy błąd. Jakimś cudem w pliku .db był certyfikat Google. Pojawiło się z tym poleceniem:
~]$ 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 ,,
Najprawdopodobniej można to zignorować, ponieważ poczta i tak działała. Wreszcie po wyciągnięciu włosów i wielu googli dowiedziałem się, jak pozbyć się irytacji.
Najpierw wyeksportuj istniejący certyfikat do pliku ASSCII:
~]$ certutil -L -n 'Google Internet Authority' -d certs -a > google.cert.asc
Teraz ponownie zaimportuj ten plik i oznacz go jako zaufany dla certyfikatów SSL, między innymi:
~]$ certutil -A -t "C,," -n 'Google Internet Authority' -d certs -i google.cert.asc
Następnie lista pokazuje, że jest zaufany:
~]$ certutil -L -d certs
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
...
Google Internet Authority C,,
A mailx wysyła bez żadnych problemów.
~]$ /bin/mailx -A gmail -s "Whadda ya no" somebody@acompany.com
ho ho ho
EOT
~]$
Mam nadzieję, że jest to pomocne dla kogoś, kto chce naprawić błąd.
Ciekawe też coś.
Jak mogę uzyskać ten certyfikat, jeśli przypadkowo nie byłby w bazie danych Mozilli? Czy jest na przykład coś takiego?
~]$ 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
aby zobaczyć je wszystkie.