certutil and cert8.db in Firefox

Using certutil to print cert8.db

This is a small post to explain how to use certutil and cert8.db. This is especially useful if you run into the error certutil: function failed: SEC_ERROR_LEGACY_DATABASE: The certificate/key database is in an old, unsupported format.

  1. What is the cert8.db?
    1. cert8.db is the certificate store for Firefox. It used to be called cert7.db earlier, but the latest versions of Firefox store the root certificates (and other certificates) in this file
  2. Why does this matter?
    1. This file is similar to the keystore on the Windows machine which stores the SSL certificates for the Windows machine. As Firefox is cross-platform it stores the certificates in its own file (much like Java does with jks)
  3. Why do I care about the cert8.db?
    1. You can query this file to get the list of certificates that are part of Firefox
  4. How do I install this?
    1. On Ubuntu machines, you can do this sudo apt-get install libnss3-tools
    2. On Windows machines, you can download the certutil.exe from here
    3. For Windows, you can also check this SUMO link
  5. So, how do I query the cert8.db?
    1. Copy the cert8.db from your Firefox profile into some directory. Your Firefox profile is in ~/.mozilla/firefox/<randomstring>.<profilename> (and typically %APPDATA%\Mozilla\Firefox\Profiles, though you can change it too). Say you copied the file into ~/code/tmp
    2. Then you open a terminal window and cd to ~/code
    3. Now type certutil -L -d tmp
    4. This will list all the certificates in the cert8.db that is in tmp directory
  6. So, as you noted, you don’t query the cert8.db file itself, rather the directory that the cert8.db file is in
  7. The above command will list all the root certificates within the cert8.db
  8. If you want to print the complete certificate chain of any one certificate, say DigiCert High Assurance EV CA-1
    1. certutil -L -n "DigiCert High Assurance EV CA-1" -d tmp

Hope this is useful for you to check the usage of certutil

Mozilla projects list – V1

List of all Mozilla projects, documented from wiki.mozilla.org

I was checking on Mozilla Wiki to see if there is a directory of all Mozilla projects and the stages that they are in. While the homepage of the Wiki has the most important projects, there were some good projects which were part of the respective projects. While this is good in that there is lesser clutter, this becomes difficult to market certain projects to get contributors – to develop / QA / support / write good documentation for.

So, I thought, why not create this tree. My focus was specifically on the various products and projects that Mozilla was doing, with a product focus. I didn’t focus on the marketing, sales, partnership, legal teams that Mozilla has. This is not to say that they will not be included in the next version. I appreciate feedback on this chart and based on that I will create the V2 with more details.

And coming to the chart itself, there are a couple of notes

  1. I am a newbie web-developer (not a newbie developer though !). So, if the HTML is not right, then please let me know and I shall learn the right way and fix it
  2. The code is a shameless copy of Mike Bostock’s collapsible tree example using D3
    1. If there are any license violations, please let me know and I shall remove the code
  3. I found out about this from James Westgate’s reply on SO
  4. The changes I did are
    1. Created the JSON data for the Mozilla projects. You can get the JSON file here
    2. Figured out (again thanks Mike), that I need to create a iFrame that will include the HTML for the visualization as part of the HTML page
    3. The iFrame has been modified to make the background opaque as the width of the complete visualization was larger than the width for the container of the blog post – that is why you will see the iFrame in 90% opacity
    4. Needless to say, you will need to enable Javascript on the page and have to allow the D3 JS site

Please let me know if I have made any mistakes or if you have suggestions on how this can be made better. A couple of enhancements I am thinking, for the next version

  1. Having a bit more meta-data in the nodes – possibly the wiki link
  2. Include active/inactive projects
  3. Provide weak-links amongst projects so that one can visualize the various links amongst the projects
  4. Learn D3 🙂

Mozilla gets <Canvas>

The Mozilla foundation’s contribution to the WHATWG group, is helping in bringing interesting things into the browser. As few would know, the Mozilla SVG support is slowly etching to become feature complete. One of the things discussed way back on netscape.public.mozilla.svg is the use of SVG as the backend for doing the rendering. Digressing from the main discussion, let me talk about the use of having SVG as the backend for rendering. Even though Mozilla right now uses XUL for doing the rendering, there can be multiple options of performing the rendering. To be able to use SVG for rendering the UI would enable one get a very rich UI for the browser. Also, using SVG for the backend would mean that the user can actual paint on the browser’s surface. So, this might enable one to create for e.g., a non-rectangular UI for the browser. It can enable one to provide for a rich animation on the UI.The options are as many as what SVG can provide one with. Of course, the major hitch being that SVG is not feature complete yet on Mozilla. Also, another thing I wonder about is the usage of SVG. With Macromedia Flash being the rather defacto standard for delivering rich UI on the browser, I wonder how many content developers / users see SVG as an option.
Continue reading “Mozilla gets <Canvas>”

The Xul Runtime Environment

The XUL Runtime is doing the rounds these days among the Mozilla folks. Unlike what I wrote about this earlier, it seems the people at Mozilla are thinking a step ahead. In competition to Microsoft’s XAML and Avalon combination, there is an idea of developing the XRE. A single binary that would let a ‘developer’ develop rich applications. And mind you, this might not just remain a GUI renderer, it might also second as a good networking library. And soon more classes can come into place.
And as mentioned in Brendan Eich’s roadmap there seems to be a lot of interest in it.
Continue reading “The Xul Runtime Environment”

Can XRE overtake SWF in mono ?

Mozilla 1.8 alpha was released recently. And the stable developer release is going to be 1.7 very soon. This is a significant achievement for the Mozilla team. Anyone who knew how long the 1.0 took will agree with me. Even Firefox is gaining momentum. With so many XUL based applications getting a lot stabler and feature rich, the next natural thing that can be thought of is a XUL runtime.
Continue reading “Can XRE overtake SWF in mono ?”

The future direction of Mozilla

The Mozilla developer day happened on the 27th Feb 2004. Hey how come I never got an invitation 😉 The future direction of the Mozilla platform has been summarized in this slide show. Very succint in presentation and upto the point.
   From the slideshow there are few questions that would immediately pop up. The general apprehensiveness and the discussions on the same are perfectly valid.
Continue reading “The future direction of Mozilla”

The Moz compilation story contd..

I guess my blog is becoming a weekly story. Got a little busy with work, so could not write about the Mozilla compilation story. I managed to find out the same night that I posted the earlier post, where I was going wrong. The problem was two fold – I didnot have autoconf and the second thing is that you use make and not gmake. Now this was something that no one would have found about (do I see a self-appreciation..hmmm).
Continue reading “The Moz compilation story contd..”

Cant pull the sources of Moz

For the past 2 hours have been trying to pull the sources of Mozilla 1.6, so that I can build the xpcom standalone. No luck yet. On Windows it just would not pull the source. On Linux I was able to pull the sources (though I didnot try to compile the stuff). How I wish I understood how make files work , darn ! IDEs make you rather dumb I guess. And herez the error I get
Could not open the destination file : Invalid argument
Could not open the source file: No such file or directory
Path not found: No such file or directory
client.mk:152: /cygdrive/e/test1/mozilla: No such file or directory
client.mk:152: |: Invalid argument
client.mk:152: sed: No such file or directory
client.mk:152: -e: No such file or directory
client.mk:152: s////.mozconfig.mk: No such file or directory
client.mk:153: /cygdrive/e/test1/mozilla: No such file or directory
client.mk:153: |: Invalid argument
client.mk:153: sed: No such file or directory
client.mk:153: -e: No such file or directory
client.mk:153: s////build/unix/modules.mk: No such file or directory
e:\moztools\bin\gmake.exe: *** No rule to make target `s////build/unix/modules.m
k'. Stop.

Makes me wonder why the drive s//// ??? And why is the client.mk trying to look for mozconfig.mk. The Win32 instructions specify that the mozconfig.mk is needed for Unix , then why is this problem ? scratch , scratch …

Lessons from Vol 2 of the SeaMonkey BrownBag

It had been a busy week, but still managed to watch the Volume 2. It is the longest of all the other videos and deals with XPCOM. It is a beginner’s introduction to XPCOM, it doesnot deal with the complete details of XPCOM, or its use (rather over-use) in the Mozilla codebase.
Scott deals with two things in the tutorial

  1. Why do we need COM (/XPCOM) ?
  2. What are the idiosyncracies of XPCOM

Continue reading “Lessons from Vol 2 of the SeaMonkey BrownBag”

Lessons from the Vol 1 of the SeaMonkey BrownBag

The Volume 1 of the SeaMonkey BrownBag series talks about the architecture of Gecko. Rick Gessner was the one who was involved primarily with the Gecko.
The first 45 minutes of the video primarily talk about the history, attitudes etc. The real stuff starts after that. And here is the gist of the entire presentation. And mind you this is the summary I made after watching the presentation.
Continue reading “Lessons from the Vol 1 of the SeaMonkey BrownBag”