How to develop a Chrome extension that overrides SSL certificate error for self-signed certificate?

06
2014-04
  • CodeEnthusiast

    The process of adding a self signed certificate to the list of trusted certificates in Chrome is manual and tedious. I frequently access a trusted website that uses a self-signed certificate. As I am now tired of pressing "Proceed anyway" every time I access the website, I decided to quickly develop a chrome extension that adds a self signed certificate to the list of trusted certificates on a click. Firefox already has a useful extension that does so.

    I have gone through Google Chrome's extension Developer guide at developer.chrome.com/extension and have also read a couple of other blogs, but I am not getting any relevant pointers on how to implement this extension.

    Could anybody kindly tell me how to start implementing this extension or point out any useful references?

  • Answers
    Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

    Related Question

    Add permanent SSL certificate exception in Chrome (Linux)
  • ℝaphink

    I have a problem with a website that has an SSL certificate which doesn't correspond to the website domain. Chrome gives me a warning for this website (and rightly so), which I have to ignore manually. Every time I restart Chrome, I need to ignore the certificate issue again.

    I've tried adding the certificate as a trusted one with certutil, using C,, and P,, trustargs, but it doesn't work. I can't find a set of trustargs that will tell it to ignore which domain is using the certificate.

    Is there a way to tell Chrome (or certutil) to trust this certificate whatever domain uses it?


  • Related Answers
  • nickf

    This is a summary of the answers from the thread
    Disable Google Chrome warning if security certificate is not trusted.

    You can avoid the message for trusted sites by installing the certificate.
    This can be done by clicking on the warning icon in the address bar, then click
    Certificate Information -> Details Tab -> Export...
    Save the certificate.

    Use Chrome's Preferences -> Under The Hood -> Manage Certificates -> Import.
    On the "Certificate Store" screen of the import, choose "Place all certificates in the following store" and browse for "Trusted Root Certification Authorities." Restart Chrome.

  • harrymc

    Please have a look at this thread:
    Can't convince Chrome that my Tivo's self signed certificate is ok.

    The article remarks that:

    You need to specify the "C,," trust flags to work around the NSS bug.

    If this thread does relate to your problem, it looks like this is a known bug in Chrome, where the "P,," trust flags is not working: libpkix ignores the P (trusted peer) trust flag

    I hope this helps (I'm answering a bit blindly, since I'm not on Linux).

  • Jonathan Day

    Google Chrome in Linux doesn’t have a SSL certificate manager, it relies on the NSS Shared DB. In order to add SSL certificates to the database you will have to use the command line. I will explain how you can add the CAcert certificates and a very easy way to add self-signed certificates.

    Please have a look at this thread: blog.avirtualhome.com/2010/02/02/adding-ssl-certificates-to-google-chrome-linux-ubuntu/

  • Attila O.

    Have you tried using the trusttags "TCP,,"?

  • Tundrome

    Using Chrome Version 23.0.1271.97 on Linux:

    1. First click on the certificate warning and export the certificate to your file system. (Connection > Certificate Information > Details > Export)
    2. Then use certutil in order to add this saved certificate as a trusted peer:

      certutil -d sql:$HOME/.pki/nssdb -A -t P -n <certificate nickname> -i <certificate filename>
      
    3. Restart Chrome and you're done.

  • Treviño

    The only way I got it working in Chromium with Ubuntu Linux is using this certutil commandline:

    certutil -d sql:$HOME/.pki/nssdb -A -t "CP,CP," -n CertNickName -i cert_file.crt