私の仕事は、証明書を支払うことなく、仕事のさまざまな側面を安全に処理するために、独自の 認証局 (CA)を発行することにしました。
彼らは私に.pem
ファイルを送ってきました、そしてそれを私のUbuntuインストールに追加する方法がわかりません。 「Mac上でダブルクリックするとインストールされます。」
どうやって進めますか? .key
、.csr
、.crt
ファイルを作成するために、 OpenSSL で何かする必要がありますか?
証明書をPEM形式(----BEGIN CERTIFICATE----
が含まれている形式)で/usr/local/share/ca-certificates
にコピーし、.crt
というファイル拡張子を付けて名前を付けます。
それからSudo update-ca-certificates
を実行してください。
警告:このインストールは、この証明書ストアを使用する製品にのみ影響します。他の証明書ストアを使用している製品もあります。これらの製品を使用する場合は、このCA証明書を他の証明書ストアにも追加する必要があります。 ( Firefoxの手順 、 Chromeの手順 、 Java命令 )
/etc/ssl/certs/ca-certificates.crt
に追加したばかりの証明書を検索することでこれがうまくいったかどうかを検証できます(これは信頼されたCAすべてを連結した長いリストです)。
OpenSSLのs_clientを使用するには、インストールしたばかりの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 = [email protected]
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/[email protected]
... 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 code
が0 (ok)
に設定されていることを確認します。
update-ca-certificates is a program that updates the directory
/etc/ssl/certs to hold SSL certificates and generates 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.
Furthermore all certificates found below /usr/local/share/ca-
certificates are also included as implicitly trusted.
以上のことから、ローカルの証明書ファイルを信頼できるストアに入れるには、それらを/usr/local/share/ca-certificates
に入れてからupdate-ca-certificates
を実行するのが望ましいと思います。あなたは/etc/ssl/certs
に直接触れる必要はありません。
私は同じ問題を抱えていたので、.pem
ファイルを/usr/local/share/ca-certificates
にコピーして.crt
に名前を変更する必要がありました。 .cer
ファイルがない場合は、.pem
ファイルをopensslを使用して簡単に.pem
に変換できます。
ファイルをコピーしたら、Sudo update-ca-certificates
を実行する必要があります。
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ファイルです。
その他の参考資料
certutil
のmanページ: https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutilDebianベースの新しいビルドの場合は、実行する必要があります。
Sudo dpkg-reconfigure ca-certificates
注:Sudoのdpkg-reconfigure ca-certificatesは内部でupdate-ca-certificatesを呼び出します
もちろん、これを行う前に、証明書(.crtファイル)を/ usr/share/ca-certificatesにコピーする必要があります。
Dwmw2の 答え を基にして、証明書管理にNSSを使用するアプリケーションにシステムトラストストアを使用するように実際に伝えることができます。
libnss3
にはデフォルトで読み取り専用のルートCA証明書のセット(libnssckbi.so
)が付属しているため、ほとんどの場合は$HOME/.pki/nssdb
にあるローカルユーザーの信頼ストアに手動で追加する必要があります。 p11-kit
は、libnssckbi.so
にインストールされたシステム全体のルート証明書へのアダプタとして機能する/etc/ssl/certs
の代わりになるドロップインを提供します。
編集:
libnssckbi.so
のバージョンよりもlibnss3
のバージョンの方が多いようです。以下は、それらすべてを見つけてバックアップし、それらを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
オリジナルの説明:
これを行うには、p11-kit
とlibnss3
をインストールします(まだインストールされていない場合)。
Sudo apt-get update && Sudo apt-get install -y p11-kit libnss3
それからlibnssckbi.so
によって提供された既存の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
それがうまくいったことを確認するために、あなたは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
)を使用するアプリケーションで利用できるようになります。
前述のように、NSSを使用するさまざまなアプリケーションには独自の証明書ストアがあります。 Ubuntuを基にしているので、certutil
を手動で使用して、アプリケーションごと、ユーザーごとにCAを追加する必要があります。
Fedoraのような他のディストリビューションでは、このようなことはJust Works™であり、あなたがupdate-ca-trust
でインストールしたCAを自動的に信頼しないようなアプリケーションに対してはバグを報告すべきです。
p11-kit-modules
パッケージをインストールしてからNSS組み込みの信頼ルートモジュールをp11-kit-trust.so
に置き換えることで、Ubuntuでもこれを修正できます。例えば、/usr/lib/firefox/libnssckbi.so
から/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
にシンボリックリンクを作成することによって
それからあなたはあなたがいくつかのハードコードされたものではなくシステムの設定された信頼ルートを得るでしょう。 Ubuntuは、そのlibnssckbi.soライブラリの複数の異なるコピーをハードコードされた信頼ルートで出荷しているので、それらすべてを置き換える必要があります。
比較 https://bugs.launchpad.net/ubuntu/+source/nss/+ bug/1647285
ここに追加するために真剣に愚かな答えが、私はlinuxでcertutilsと行き来する2時間を費やしていました...私はすべてが正しかったと確信していました:
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
フォローした後の成功の秘訣は次のとおりです。 スティーブンマンデー のアドバイス