# Network Security Services

Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications.

Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security standards.

## Certificate management

### List certificate DB

To get list all certificates:

    $ certutil -d sql:$HOME/.pki/nssdb -L

To get details about certificate:

    $ certutil -d sql:$HOME/.pki/nssdb -L -n <certificate nickname>

### Import certificate

To add a certificate use:

    $ 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 or Meena's blog post on trust flags.

To add a personal certificate and private key for SSL client authentication use the command:

    $ pk12util -d sql:$HOME/.pki/nssdb -i <PKCS12_file.p12>

This will 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".

### Edit certificate

    $ certutil -d sql:$HOME/.pki/nssdb -M -t <TRUSTARGS> -n <certificate nickname>

### Delete certificate

    $ certutil -d sql:$HOME/.pki/nssdb -D -n <certificate nickname>

## Links and References

- Network Security Services on mozilla.org.
- Using the Certificate Database Tool on mozilla.org.
- Certificate management on Chromium help.
- Managing Certificate Trust flags in NSS Database on Meena's blog.

Category:

- Internet applications