Mozilla Thunderbird wraz z dodatkiem Owl lub Exquilla (oba od tej samej firmy) świetnie współpracuje z sererami mailowymi Microsoft Exchange (głównie używany w wypadku Office 365). Jednak z jakiegoś powodu nie można z ich pomocą skonfigurować S/MIME, czyli cyfrowego podpisywania i/lub szyfrowania maili za pomocą osobistych certyfikatów SSL. A przynajmniej nie w oczywisty sposób.
Drobna dygresja na start – darmowy certyfikat S/MIME do celów prywatnych można dostać od firmy Actalis (https://www.actalis.it/products/certificates-for-secure-electronic-mail.aspx). Nie sponsorują mnie, po prostu są chyba jednym z ostatnich dostawców darmowych usług tego typu.
Jak już mamy nasz certyfikat w formacie PFX/P12 należy go zainstalować w Thunderbirdzie w analogiczny sposób do Firefoxa – też posiada własny cert store, dostępny przez Menu -> Preferences -> Advanced -> Certificates -> Manage Certificates -> Import…

Następny krok to wybranie certyfikatu w ustawieniach konta mailowego – docelowo tak żeby zgadzało się identity jeśli mamy na przykład kilka adresów mailowych i odpowiadające im certyfikaty. Nie ma czegoś w rodzaju globalnego defaultowego certyfikatu.
I to właśnie miejsce gdzie zaczyna się problem – ani Owl ani Exquilla nie mają w ustawieniach zakładki Security. Po kilkugodzinnym dłubaniu dla samego dłubania odkryłem jak to uczynić.

W trakcie tego dłubania skowertowałem 3 pluginy w starym formacie tak, żeby dały się zainstalować na nowym silniku firefoxowym. Osiągnąłem to konwertując stare formaty manifestów install.rdf i chrome.manifest na manifest.json. Jest to dość proste co opisuje dokumentacja Thunderbirda. Same pluginy w formacie .xpi to tak naprawdę przemianowane archiwa ZIP. Niestety żaden z nich nie pomógł mi wybrać certyfikatu do podpisywania maili, lecz jeden z nich dał wskazówkę – tym czego szukałem była modyfikacja konfiguracji Thunderbirda – taka jak w firefoxie dostępna jest przez about:config
. W kliencie mailowym dostępne są one pod ścieżką menu: Menu -> Preferences -> Advanced -> General -> Config Editor.

Klucze konfiguracji które nas interesują są poniżej. X
w idX
to numeryczny ID profilu klienta poczty – wystarczy wpisywać w pole search wpisywać kolejno id1, id2, id3… żeby połapać się który profil ma który ID, ale generalnie są one numerowane po kolei.
mail.identity.idX.signing_cert_dbkey
– klucz, którym jest zaszyfrowana baza certyfikatów Thunderbirda (base64)mail.identity.idX.signing_cert_name
– wartość CN naszego certyfikatu czyli na 99% po prostu adres emailowy
Zasadnicza kwestia to ustalenie wartości signing_cert_dbkey
. Najprostszym sposobem na jej zdobycie jest uwtorzenie na chwilę dodatkowego profilu poczty, który nie musi działać, lecz musi używać wbudowanych w Thunderbirda protokołów (SMTP/IMAP) tak aby ujawniło się nam menu Security. Tamże wystarczy wybrać certyfikat za pomocą Select… i już z powrotem w konfiguracji namierzyć wartość signing_cert_dbkey
i przekleić ją do gałęzi identity Exchanga. Jeśli któryś z kluczy nie istnieje wystarczy kliknąć prawym klawiszem myszy i wybrać New -> String.
Przy okazji warto polecić plugin Enigmail, który poza supportem OpenPGP umożliwia łatwy podgląd stanu podpisu S/MIME wiadomości email.
Tworzenie… i odczytywanie podpisanego maila.