Merge branch 'master' of git://git.tails.boum.org/tails
[tails-test.git] / wiki / src / blueprint / Persistence:_add_iceweasel_client_certificates_preset.mdwn
blobe9bef15b18af7fa1b4b6ea2b900639f3d2067141
1 Persistence of client certificates in the browser would make their use a lot easier
3 Research
4 ========
6 Import method
7 -------------
9 The same approach than with bookmarks seems to be working. Candidate files are `key3.db` and/or `cert8.db` and/or `secmod.db` (<http://www-archive.mozilla.org/projects/security/pki/nss/db_formats.html>). These filenames seems to be subject to change without a notice.
11 Another approach would be to use `pk12util` (from `nss3-tools` package, see <https://developer.mozilla.org/en-US/docs/NSS/Tools>) to import client cert (<https://developer.mozilla.org/en-US/docs/NSS/tools/NSS_Tools_pk12util>). See also `certutil` to import certificates (<http://wiki.wmtransfer.com/projects/webmoney/wiki/Installing_personal_certificate_in_Mozilla_Firefox> : <https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutil>)
13 According to
14 <https://support.mozilla.org/en-US/kb/Recovering%20important%20data%20from%20an%20old%20profile>:
16   - `key3.db` - This file stores your key database for your passwords.
17   - `cert8.db` - This file stores all your security certificate settings
18     and any SSL certificates you have imported into Firefox.
20 It's being replaced by a sqlite database.
22 One is asked passwords when importing client certificates. The [Python
23 binding for
24 NSS](https://www.mozilla.org/projects/security/pki/python-nss/)
25 ([Python
26 API](http://people.redhat.com/jdennis/python-nss/doc/api/html/), [C
27 API](https://developer.mozilla.org/en-US/docs/NSS#NSS_APIs)) should
28 allow to do roughly the same as `pk12util` or `certutil`, but ask for
29 the password graphically. But perhaps there's a GUI available
30 somewhere already?
32 If the certificate is not in PKCS #12 format, the certutil tool can be
33 used to convert it.
35 User experience
36 ---------------
38 ### NSS database upgrade
40 certutil has a `--upgrade-merge` feature to *Upgrade an old database
41 and merge it into a new database. This is used to migrate legacy NSS
42 databases (cert8.db and key3.db) into the newer SQLite databases
43 (cert9.db and key4.db).* that might be handy.
45 However, certain certutil versions (e.g. 3.15) refuse to read or write
46 any too old databases, such as the one Firefox 17 generates and uses
47 with NSS 3.14.3 backported from Wheezy. We'll presumably always have
48 to ship NSS and Firefox in sync' in Tails anyway. So, if we use
49 certutil to perform the upgrade, then we and/or users will have to
50 ensure it's done during the transition period, assuming there's one.