Ubuntuに証明書局(CA)を追加する方法を教えてください

certificate trusted-root-certificates ubuntu

私の仕事は、証明書にお金を払わずに安全に仕事のさまざまな側面を処理するために、独自のcertificate authority (CA)を発行することにしました

  • 暗号化して電子メールにサインします
  • メールの内容を暗号化します
  • IRC クライアント証明書に基づいて、会社のようなものにアクセスできるようにする
  • 元社員の鍵を自動的に取り消す

.pemファイルが送られてきたのですが、Ubuntuのインストールに追加する方法がよくわかりません。送られてきた指示は”Macでダブルクリックするとインストールされます。”

どのように進めればよいのでしょうか?OpenSSL.key.csr.crtファイルを作成するために何かする必要がありますか?

  207  Xeoncross  2012-06-15


ベストアンサー

CAのインストール

PEM形式(----BEGIN CERTIFICATE----が入っている形式)の証明書を/usr/local/share/ca-certificatesにコピーし、.crtのファイル拡張子で名前を付けます

そして、sudo update-ca-certificatesを実行します

警告。このインストールは、この証明書ストアを使用する製品にのみ適用されます。一部の製品では他の証明書ストアを使用している場合がありますので、それらの製品を使用している場合は、この CA 証明書を他の証明書ストアにも追加する必要があります。(Firefox の説明, Chrome の説明, Java の説明)

CAのテスト

これがうまくいったかどうかは、/etc/ssl/certs/ca-certificates.crtで追加した証明書を探すことで確認できます (これは、信頼できるすべてのCAの長いリストを連結したものです)

また、先ほどインストールしたCAが署名した証明書を使用していることがわかっているサーバに接続しようとすることで、OpenSSLのs_clientを使用することもできます

$ openssl s_client -connect foo.whatever.com:443 -CApath /etc/ssl/certs

CONNECTED(00000003)
depth=1 C = US, ST = Virginia, O = "Whatever, Inc.", CN = whatever.com, emailAddress = admin@whatever.com
verify return:1
depth=0 C = US, ST = Virginia, L = Arlington, O = "Whatever, Inc.", CN = foo.whatever.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=Virginia/L=Arlington/O=Whatever, Inc./CN=foo.whatever.com
i:/C=US/ST=Virginia/O=Whatever, Inc./CN=whatever.com/emailAddress=admin@whatever.com

... snip lots of output ...

Key-Arg   : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1392837700
Timeout   : 300 (sec)
Verify return code: 0 (ok)

最初に探すべきものは、出力の上部近くにある証明書チェーンです。これはCAが発行者として表示されているはずです(i:の隣)。これは、サーバがインストールしたCAによって署名された証明書を提示していることを示しています

次に、最後のverify return code0 (ok)になっているのを探します

281  Mark E. Haase  2014-02-19


ca-certificates を更新する人

update-ca-certificates  is a program that updates the directory /etc/ssl/certs to hold SSL
certificates  and  generates  ca-certificates.crt,  a  concatenated  single-file  list  of
certificates.

It  reads  the  file  /etc/ca-certificates.conf.  Each  line  gives  a  pathname  of  a CA
certificate under /usr/share/ca-certificates that should be  trusted.   Lines  that  begin
with  "#"  are  comment lines and thus ignored.  Lines that begin with "!" are deselected,
causing the deactivation of the CA certificate in question. Certificates must have a  .crt
extension in order to be included by update-ca-certificates.

Furthermore  all  certificates  with  a  .crt  extension  found below /usr/local/share/ca-
certificates are also included as implicitly trusted.

上記のことから、ローカルの証明書ファイルを信頼されたストアに入れるための好ましい方法は、/usr/local/share/ca-certificatesに入れてからupdate-ca-certificatesを実行することだと推察します。/etc/ssl/certs を直接触る必要はありません

74  Steven Monday  2012-06-15


update-ca-certificatesに関する他の回答は、システム証明書ストアから読み込むアプリケーションの場合は正しいです。Chrome や Firefox、そしておそらく他のいくつかのアプリケーションでは、証明書は Mozilla NSS ライブラリのバックエンドである nssdb に置かれなければなりません

https://code.google.com/p/chromium/wiki/LinuxCertManagementより

例えば、SSLサーバ証明書を発行するためのルートCA証明書を信頼するには、次のようにします

certutil -d sql:$HOME/.pki/nssdb -A -t “C,” -n <証明書のニックネーム> -i <証明書のファイル名>

ここで、<certificate nickname>は任意のもので、<certificate filename>は.pemまたは.crtファイルです

その他の参考文献

19  Johann  2013-10-10


私も同じ問題があり、.pemファイルを/usr/local/share/ca-certificatesにコピーして.crtにリネームしました。.cerファイルは、.pemを持っていなければ、opensslなどで簡単に.pemに変換することができます

ファイルをコピーしたら、sudo update-ca-certificatesを実行する必要があります

16  greuze  2014-04-30


Debian をベースにした新しいビルドの場合は、実行する必要があるかもしれません

sudo dpkg-reconfigure ca-certificates

注: sudo dpkg-reconfigure ca-certificates は内部的に update-ca-certificates を呼び出します

もちろん、証明書 (.crt ファイル) を /usr/share/ca-certificates にコピーする必要があります。)

12  missmah  2015-09-02


dwmw2 の 回答 をベースに、証明書管理に NSS を使用しているアプリケーションにシステムのトラストストアを使用するように指示することができます

libnss3 はデフォルトでルートCA証明書の読み取り専用セット (libnssckbi.so) を出荷しているので、ほとんどの場合、$HOME/.pki/nssdb にあるローカルユーザのトラストストアに自分で手動で追加する必要があります。p11-kit は、/etc/ssl/certs にインストールされているシステム全体のルート証明書へのアダプタとして機能する libnssckbi.so の代替品を提供します

Edit:

libnss3だけではなく、libnssckbi.soのバージョンもあるようです。以下は、それらをすべて見つけ出してバックアップし、p11-kitへのリンクに置き換えるスクリプトです

sudo apt-get update && sudo apt-get install -y p11-kit libnss3
find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do
sudo mv $line ${line}.bak
sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line
done

Original instructions:

そのためには、p11-kitlibnss3をインストールしてください(まだ足がついていない場合)

sudo apt-get update && sudo apt-get install -y p11-kit libnss3

そして、libnss3が提供する既存のlibnssckbi.soをバックアップします

sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.bak

最後にシンボリックリンクを作成します

sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so

動作したことを確認するために、ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.soを実行するとリンクが表示されるはずです

lrwxrwxrwx 1 root root 49 Apr  9 20:28 /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so -> /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

これで、update-ca-certificatesを使ってCAストアに証明書を追加すると、ChromeなどのNSS(libnss3)を使っているアプリケーションでも証明書を利用できるようになりました

7  wheeler  2018-04-10


ご指摘のように、NSSを使用する様々なアプリケーションは、独自の証明書ストアを持っています。Ubuntu上では、アプリケーションごとに、ユーザごとに、手動でcertutilを使って認証局を追加しなければなりません

Fedora のような他のディストリビューションでは、この種のことは Just Works™ で、update-ca-trust でインストールした CA を自動的に信頼しないアプリケーションに対してバグを報告する必要があります

Ubuntuでも、p11-kit-modulesパッケージをインストールし、NSS組み込みのトラストルーツモジュールをp11-kit-trust.soに置き換え、例えば/usr/lib/firefox/libnssckbi.soから/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.soへのシンボリックリンクを作成することで、これを修正することができます

そうすれば、ハードコードされたものではなく、システムに設定されたトラストルートを取得することができます。Ubuntuは、ハードコードされたトラストルーツを持つlibnssckbi.soライブラリの複数の異なるコピーを出荷しているので、それらをすべて入れ替えなければならないことに注意してください!

Bug #1647285 “SSL trust not system-wide” : Bugs : nss package : Ubuntu
When I install a corporate CA trust root with update-ca-certificates, it doesn't seem to work everywhere. Various things like Firefox, Evolution, Chrome, etc. a...

4  dwmw2  2016-12-12


ここに追加するには真面目に愚かな答えですが、私は2時間かけてlinuxのcertutilsを行ったり来たりしていました…私はすべてが正しいと確信していました

hutber@hutber-mint /var/www/asos-mvt-framework $ certutil -L -d sql:${HOME}/.pki/nssdb

Certificate Nickname                                         Trust Attributes
SSL,S/MIME,JAR/XPI

anyproxy                                                     CT,,
rootCA                                                       CT,,
myasos                                                       CT,,

それでもクロームでは何も動いていませんでした。いろいろ試してみましたが、結局

Restarting Chrome

フォローした後の私の成功の鍵でした。スティーブン・マンデーのアドバイス

1  Jamie Hutber  2018-01-02


タイトルとURLをコピーしました