Index: docs/linux_cert_management.md |
diff --git a/docs/linux_cert_management.md b/docs/linux_cert_management.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7faf6bafdd5fa9034e4f4b904c8a13fbe6c4ebea |
--- /dev/null |
+++ b/docs/linux_cert_management.md |
@@ -0,0 +1,64 @@ |
+**NOTE:** SSL client authentication with personal certificates does not work completely in Linux, see [issue 16830](http://code.google.com/p/chromium/issues/detail?id=16830) and [issue 25241](http://code.google.com/p/chromium/issues/detail?id=25241). |
+ |
+# Introduction |
+ |
+The easy way to manage certificates is navigate to chrome://settings/search#ssl. Then click on the "Manage Certificates" button. This will load a built-in interface for managing certificates. |
+ |
+On Linux, Chromium uses the [NSS Shared DB](https://wiki.mozilla.org/NSS_Shared_DB_And_LINUX). If the built-in manager does not work for you then you can configure certificates with the [NSS command line tools](http://www.mozilla.org/projects/security/pki/nss/tools/). |
+ |
+# Details |
+ |
+## Get the tools |
+ * Debian/Ubuntu: `sudo apt-get install libnss3-tools` |
+ * Fedora: `su -c "yum install nss-tools"` |
+ * Gentoo: `su -c "echo 'dev-libs/nss utils' >> /etc/portage/package.use && emerge dev-libs/nss"` (You need to launch all commands below with the `nss` prefix, e.g., `nsscertutil`.) |
+ * Opensuse: `sudo zypper install mozilla-nss-tools` |
+ |
+ |
+## List all certificates |
+ |
+`certutil -d sql:$HOME/.pki/nssdb -L` |
+ |
+### Ubuntu Jaunty error |
+Above (and most commands) gives: |
+ |
+`certutil: function failed: security library: invalid arguments.` |
+ |
+Package version 3.12.3.1-0ubuntu0.9.04.2 |
+ |
+## List details of a certificate |
+ |
+`certutil -d sql:$HOME/.pki/nssdb -L -n <certificate nickname>` |
+ |
+## Add a certificate |
+ |
+`certutil -d sql:$HOME/.pki/nssdb -A -t <TRUSTARGS> -n <certificate nickname> -i <certificate filename>` |
+ |
+The TRUSTARGS are three strings of zero or more alphabetic |
+characters, separated by commas. They define how the certificate should be trusted for SSL, email, and object signing, and are explained in the [certutil docs](http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html#1034193) or [Meena's blog post on trust flags](https://blogs.oracle.com/meena/entry/notes_about_trust_flags). |
+ |
+For example, to trust a root CA certificate for issuing SSL server certificates, use |
+ |
+`certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n <certificate nickname> -i <certificate filename>` |
+ |
+To import an intermediate CA certificate, use |
+ |
+`certutil -d sql:$HOME/.pki/nssdb -A -t ",," -n <certificate nickname> -i <certificate filename>` |
+ |
+Note: to trust a self-signed server certificate, we should use |
+ |
+`certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n <certificate nickname> -i <certificate filename>` |
+ |
+This should work now, because [NSS bug 531160](https://bugzilla.mozilla.org/show_bug.cgi?id=531160) is claimed to be fixed in a related bug report. If it doesn't work, then to work around the NSS bug, you have to trust it as a CA using the "C,," trust flags. |
+ |
+### Add a personal certificate and private key for SSL client authentication |
+ |
+Use the command: |
+ |
+`pk12util -d sql:$HOME/.pki/nssdb -i PKCS12_file.p12` |
+ |
+to import a personal certificate and private key stored in a PKCS #12 file. The TRUSTARGS of the personal certificate will be set to "u,u,u". |
+ |
+## Delete a certificate |
+ |
+`certutil -d sql:$HOME/.pki/nssdb -D -n <certificate nickname>` |