The following instructions are for Ubuntu 64-bit systems using 14.04, 15.10, 16.04, 16.10, 17.04 or 17.10 (the supported versions according to the official installation instructions for Linux in previous and current versions combined).
I have tested this process
- on Ubuntu 16.10 64-bit with "ID-software version: 17.2, released 15.02.2017" (tested with Chrome, Chromium and Firefox)
- on Ubuntu 17.10 64-bit with "ID-software version: 17.12, released 21.12.2017" (tested with Chromium only)
1. Compatible card readers
The instructions below were tested with the following two card readers, as identified by lsusb
:
- ID 04e6:5119 SCM Microsystems, Inc. SCR3340 - ExpressCard54 Smart Card Reader
- ID 076b:a021 OmniKey AG CCID Smart Card Reader. This is the "official" card reader coming in the E-ID package as of January 2017.
See also this list for other compatible smartcard readers that work under Linux. The ExpressCard54 versions in there are:
- SCM Microsystems SCR3340 (as above, used here)
- Gemalto GemPC Express
- OMNIKEY CardMan 4321
2. Instructions for Chrome / Chromium
- Make sure you have either Chromium or Chrome installed. These instructions are tested with both of them. To install Chrome from a repo, use these instructions.
Install the "ID Software" under Linux as per the official instructions. In short, the instructions are:
wget https://installer.id.ee/media/install-scripts/install-open-eid.sh
sh install-open-eid.sh
- Re-start the computer after the installation of the E-ID software (also try that in case your E-ID login attempts fail). I could not get any E-ID login to work before a restart, it would always fail with "No certificate could be found".
- Connect your smartcard reader.
- Insert the Estonian E-ID card into the reader.
Make sure the smartcard service is in status "active":
sudo service pcscd status
If necessary start it with:
sudo service pcscd start
This step is usually no needed as the service should be started automatically when inserting a card. But just to be sure.
- Start Google Chrome (by executing "google-chrome") or Chromium (by executing "chromium-browser").
- Visit a website that provides E-ID login to try it out, for example the Company Registration Portal.
- Click the login button to the top right and then the "Estonian ID-card" link.
- During the first login, choose the appropriate certificate from the list that will appear in a popup window, and enter PIN1 of your E-ID card to unlock it. This will be remembered for future logins until restarting the browser.
3. Instructions for Firefox 64-bit
These instructions work only for a 64-bit Firefox on 64-bit Ubuntu – that is. They do not work for 32-bit Firefox on 64-bit Ubuntu (I tried), even though they should according to the available documentation.
As of February 2017 and (hopefully) only until March 7, 2017, you will not be able to use all E-ID websites with a 64-bit Firefox, though. You can use for example the Estonian Company Registry already, though. If you need to access other E-ID websites, maybe better use Chrome / Chromium, which does not have the 32/64-bit issue with E-ID use.
The reason I got told by id.ee support people (and partially mentioned in the official documentation now) is this: There is a transition underway from the old Firefox NPAPI plugin named "Firefox Token Signing" (which does only work in 32-bit Firefox) to the new Firefox extension named "Token signing" (which also works in 64-bit Firefox). This is because Firefox will abandon the support for all NPAPI plugins, so the "Firefox Token Signing" plugin will stop working soon. This transition also mandates that the E-ID websites update their hwcrypto.js library, which most have not done yet (but the Company Registry has, notably). So for now most of the E-ID websites will try to access your "Firefox Token Signing" plugin which works on 32-bit Firefox only, while the "Token signing" extension is still quite useless. That will however change soon, as the NPAPI gets retired in Firefox on 2017-03-07.
Now the installation instructions:
Install the "ID Software" under Linux as per the official instructions, step 1 only (./install-open-eid.sh
).
Connect your smartcard reader.
Insert the Estonian E-ID card into the card reader.
Make sure the smartcard service is in status "active":
sudo service pcscd status
If necessary start it with:
sudo service pcscd start
This step is usually not needed as the service should be started automatically when inserting a card. But just to be sure.
Start Firefox and go to "☰ → Add-ons → Extensions". If the list does not contain both "PKCS11 Loader" and "Token Signing", do the following:
Re-start the computer and check again if the extensions are now listed.
Re-install Firefox and check again if the extensions are now listed. This was done in my tests by temporarily installing Firefox 32-bit via sudo apt-get install firefox:i386; sudo apt-get install firefox;
. But it should also work by simply uninstalling and reinstalling.
In Firefox, go to "☰ → Add-ons → Extensions" and make sure that "PKCS11 Loader" and "Token Signing" are enabled.
Visit a website that provides E-ID login to try it out, for example the Company Registration Portal.
Click the login button to the top right and then the "Estonian ID-card" link.
If an error message ("Certificate could not be found") appears, re-start the computer. This is probably only needed once after the installation of the E-ID software, but you can also try it if previous login attempts failed.
During the first login, choose the appropriate certificate from the list that will appear in a popup window, and enter PIN1 of your E-ID card to unlock it. This will be remembered for future logins until restarting the browser.
As of 2020-05 and Firefox 76.0, logins with the Estonian E-ID card (means, using PIN1) are possible without having any E-ID Firefox plugins installed. However, the plugins are required for signing (means, using PIN2). So the ultimate test is trying to sign something, obviously, not a login as shown above.