Main menu:

Sponsoring

Please consider a small donation:

 

 

Or you can donate bitcoin:

 

Thanks to TekLinks in Birmingham, AL, for providing colocation and bandwidth.

Page Rank

Fame

FOSS Force Best Blog--2013 Award

Recent posts

Recent comments

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.

Search

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 345 other subscribers

My Favourites

Slackware

Calendar

December 2017
M T W T F S S
« Nov    
 123
45678910
11121314151617
18192021222324
25262728293031

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages

RSS Slackware64-current

Meta

Adding CACert root certificates to your Slackware

Long before the “letsencrypt” initiative, we already had another free and open Certificate Authority, called CACert.org. CACert is community driven, and uses ‘assurers’ who personally verify users’ identities, thereby building a “web of trust”. Unfortunately, the big players on the Internet (Google, Mozilla, Microsoft) have always refused to accept and incorporate the CACert root certificate into their browsers. Instead, after many years of imploring these companies to add CACert as a trusted Certificate Authority without any success, they spat in the face of the community and launched their own alternative for free SSL certificates: letsencrypt.

And therefore, even today, a site that uses a CACert-issued SSL certificate is flagged by browsers as untrustworthy. In my opinion. this refusal to accept a community-driven security initiative is nothing short of bullying.

My own server, bear.alienbase.nl, uses a CACert-issued certificate. Folks, it is secure to use https on it! Even when Chrome or Firefox says it is not. So, how to fix that bogus warning message?
For Firefox, Chrome and for the OS in general: import the CACert certificates as follows:

First add the CACert root and class3 certificates to your Linux system.
As the root user you download the two .crt files, copy them to /etc/ssl/certs and generate openssl hashes (I used backslashes to indicate that some lines are wrapping because the text would otherwise not be visible on this page):

# cd /tmp
# mkdir CACert
# cd CACert/
# wget -O cacert-root.crt http://www.cacert.org/certs/root.crt
# wget -O cacert-class3.crt http://www.cacert.org/certs/class3.crt
# cp -ia cacert-*.crt /etc/ssl/certs/
# cd /etc/ssl/certs/
# ln -s cacert-root.crt \
   `openssl x509 -noout -hash -in cacert-root.crt`.0
# ln -s cacert-class3.crt \
   `openssl x509 -noout -hash -in cacert-class3.crt`.0

To make your browsers support CaCert they need to import their root and class3 certficates first. I will focus on Firefox and Chromium (instructions will work for Pale Moon and Chrome as well).

First the Firefox or Pale Moon browser. Open the page http://www.cacert.org/index.php?id=3

  1. Click on the link for “Class 1 PKI Key” called “Root Certificate (DER Format)“. You will see the text “You have been asked to trust a new Certificate Authority (CA). Do you want to trust ‘CA Cert Signing Authority’ for the following purposes?“. At a minimum you must check the box to the left of “Trust this CA to identify web sites” before importing the certificate.
  2. Then do the same for the “Class 3 PKI Key” called “Intermediate Certificate (DER Format)” a bit lower on the page.

Next, Chrome/Chromium. To add the CACert root and class3 certificates to your Chromium browser do the following as your regular user account (see also http://wiki.cacert.org/FAQ/BrowserClients#Linux)

$ cd /tmp/CACert/
$ certutil -d sql:$HOME/.pki/nssdb \
   -A -t TC -n "CAcert.org" -i cacert-root.crt
$ certutil -d sql:$HOME/.pki/nssdb \
   -A -t TC -n "CAcert.org Class 3" -i cacert-class3.crt

And you’ll end up with a trusted site next time you visit my ‘bear’ server:

Comments

Comment from Niki Kovacs
Posted: March 19, 2017 at 00:14

I remember you didn’t want to build LetsEncrypt’s Certbot client because there are so many dependencies. Last week I stumbled over an alternative client (nothing to do with “alternative facts”, eh). I didn’t try it, since I already have Certbot on my servers, but here you go. https://github.com/Neilpang/acme.sh

Comment from Alexander
Posted: March 19, 2017 at 00:48

And this letsencrypt client:
https://slackbuilds.org/repository/14.2/system/dehydrated/
is a bash script, I use it and have nothing to complain.

Comment from Geremia
Posted: March 19, 2017 at 01:42

I get:

certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.

when trying to run your certutil commands.

Comment from Roy Lanek
Posted: March 19, 2017 at 08:00

Done. Nice. THX.

Comment from Mike Langdon
Posted: March 19, 2017 at 10:38

I had nearly the same result as Geremia, except it ended with invalid arguments.

Comment from Willy Sudiarto Raharjo
Posted: March 19, 2017 at 12:09

All the above commands works fine here

make sure to copy-paste from the website instead of trying to write it manually

Comment from LoneStar
Posted: March 19, 2017 at 12:41

yep, the thing with CA certs and Mozilla/Google is extremely annoying.

Just past week I’ve switched to using letsencrypt (with dehydrated script) because of the recent events with StartCom. I had paid a 2-years willdcard cert with StartCom, valid until 2018, and now it’s considered unthrustworty by the browsers because of the well known accusations.

Pingback from Links 19/3/2017: Linux Sightings, What’s Wrong With Microsoft, and Death of Docker | Techrights
Posted: March 19, 2017 at 18:24

[…] Adding CACert root certificates to your Slackware […]

Comment from Ricardo J. Barberis
Posted: March 19, 2017 at 21:07

Working fine also with Opera (the new one, based on Chrome), I just had to restart the browser.

Thanks for the instructions!

Comment from Robert Allen
Posted: March 20, 2017 at 07:49

Thanks for the overview of CACert – I had seen them in previous searches but had no clear idea of their place in the cosmos.

I too, have balked at putting certbot on my own machines – not going to happen! I have found letsencrypt-nosudo to meet my own needs perfectly: https://github.com/diafygi/letsencrypt-nosudo

It allows me to manage and renew all my certs from my local machine. Nothing runs on the production platforms – ever, I authenticate with temporary well-known/… files via HTTP and upload the renewed certs over ssh/sftp.

On the local machine it never runs with elevated privs and writes only to STDOUT, making no assumptions about how I want to organize everything.

Perhaps a Slackdocs article in the works…

Comment from bam
Posted: April 9, 2017 at 17:34

If I add an exception for the SSL certificate for Firefox, it still shows me that “Connection is not secure”. Any chance to solve it?

Comment from alienbob
Posted: April 11, 2017 at 11:48

bam, did you also execute the two “certutil” commands as your normal user account?

Comment from bam
Posted: April 11, 2017 at 12:42

Eric, yes, I did all the commands and Chromium works now, but not Firefox

Comment from alienbob
Posted: April 11, 2017 at 12:55

OK, I think you also need to do the following. If so, then I will update the main article.

Using your Firefox browser, open the page http://www.cacert.org/index.php?id=3

Click on the link for “Class 1 PKI Key” called “Root Certificate (DER Format)“. You will see the text “You have been asked to trust a new Certificate Authority (CA). Do you want to trust ‘CA Cert Signing Authority’ for the following purposes?“.
At a minimum you must check the box to the left of “Trust this CA to identify web sites” before importing the certificate.

Then do the same for the “Class 3 PKI Key” called “Intermediate Certificate (DER Format)” a bit lower on the page.

Comment from bam
Posted: April 15, 2017 at 18:29

Thanks Eric, it works

Comment from alienbob
Posted: April 15, 2017 at 21:37

OK bam, I have updated the main article with the Firefox steps.

Write a comment