2012-06-15 16:14:17 +0000 2012-06-15 16:14:17 +0000
186
186

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

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

  • メールを暗号化して署名する
  • メールの内容を暗号化する
  • 会社の IRC のようなものへのアクセスをクライアント証明書ベースにする
  • 元従業員の鍵を自動的に失効させる

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

どうやって進めればいいのでしょうか?また、.key.csr.crtファイルを作成するには、 OpenSSL で何かしないといけないのでしょうか?

回答 (8)

253
253
253
2014-02-19 19:13:09 +0000

PEM形式(----BEGIN CERTIFICATE----が入っている形式)の証明書を/usr/local/share/ca-certificatesにコピーし、.crtのファイル拡張子を付けて名前を付けます。製品によっては、他の証明書ストアを使用している場合がありますので、それらの製品を使用している場合は、このCA証明書を他の証明書ストアにも追加する必要があります。 これらの製品を使用する場合は、他の証明書ストアにもこの CA 証明書を追加する必要があります。

$ 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が発行者として表示されているはずです(sudo update-ca-certificatesの隣)。これは、サーバがインストールしているCAによって署名された証明書を提示していることを示しています。

次に、最後にある/etc/ssl/certs/ca-certificates.crti:に設定されていることを探します。

69
69
69
2012-06-15 18:07:40 +0000

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

15
15
15
2013-10-10 18:46:49 +0000

update-ca-certificatesに関する他の回答は、システム証明書ストアから読み取るアプリケーションの場合は正解です。ChromeやFirefoxなどでは、Mozilla NSSライブラリのバックエンドであるnssdbに証明書を入れる必要があります。

From 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ファイルである。 https://wiki.archlinux.org/index.php/Network_Security_Services - 上で使用されたパラメータを記述するcertutilのマニュアルページ。 https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutil

15
15
15
2014-04-30 13:39:09 +0000

私も同じ問題があり、.pemファイルを/usr/local/share/ca-certificatesにコピーして、.crtと名前を変えて実行する必要がありました。.cerファイルを持っていない場合は、opensslなどで簡単に.pemに変換できます。

コピーした後に.pemを実行する必要があります。

11
11
11
2015-09-02 06:19:09 +0000

Debian ベースの新しいビルドの場合、以下のように実行する必要があるかもしれません:

sudo dpkg-reconfigure ca-certificates

NOTE: sudo dpkg-reconfigure ca-certificates calls update-ca-certificates inside

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

6
6
6
2018-04-10 01:00:50 +0000

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

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

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

オリジナルの手順:

これを行うには、(まだインストールされていない場合) libnss3p11-kitをインストールします:

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

それから、p11-kitが提供する既存のlibnss3をバックアップしてください。

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

それが機能したことを確認するために、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

今、libnss3 を使用して CA ストアに証明書を追加すると、それらの証明書は、Chrome のような NSS (ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so) を使用してアプリケーションで利用できるようになります。

3
3
3
2016-12-12 12:36:34 +0000

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

Fedoraのような他のディストリビューションでは、この種のことはJust Works™で、update-ca-trustでインストールした認証局を自動的に信頼しないアプリケーションに対してバグを報告しなければなりません。

Ubuntuでも、p11-kit-modulesパッケージをインストールして、NSSのbuilt-in trust rootsモジュールをp11-kit-trust.soに置き換え、例えば/usr/lib/firefox/libnssckbi.soから/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.soへのシンボリックリンクを作成することで、これを修正することができます。Ubuntu は、ハードコードされたトラストルーツを持つ libnssckbi.so ライブラリの複数の different コピーを出荷していることに注意してください。

cf. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285

1
1
1
2018-01-02 12:58:09 +0000

ここに追加するには、真面目に愚かな答えですが、私は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

は、次の後に私の成功への鍵でした。スティーブン・マンデー](https://superuser.com/questions/437330/how-do-you-add-a-certificate-authority-ca-to-ubuntu#437377)さんのアドバイス