(再まとめ) CAの構築とサーバ証明書・クライアント証明書の作成

OpenSSLを使用して、CAを立てて、サーバ証明書とクライアント証明書を作成する手順を再度まとめておくことにします。 合わせて、期限切れ時などの証明書更新時には、期限切れになった証明書を無効化する必要がありますので、その手順もまとめておきます。

■作成日 2015年12月29~31日に作成しているという設定。

■仕様 全体の仕様として、デフォルトだとSHA1になるメッセージダイジェストをSHA2に強化。この仕様は、下記ファイルで設定しておくことにする。 (1) CAスクリプト /etc/pki/tls/misc/CA (2) OpenSSL設定ファイル /etc/pki/tls/openssl.cnf

CA: ・有効期間10年3650日 ・鍵の長さ2048bit ・メッセージダイジェストSHA256

サーバ証明書: ・有効期限369日(翌年1月3日まで) ・鍵の長さ2048bit ・メッセージダイジェストSHA256

クライアント証明書: ・有効期限368日(翌年1月3日まで) ・鍵の長さ2048bit ・メッセージダイジェストSHA256

デフォルト設定値: ・countryName_default = JP ・stateOrProvinceName_default = Kanagawa ・localityName_default = Kawasaki ・0.organizationName_default = goofoo

■準備 ディレクトリバックアップ

# cp -pr /etc/pki{,.20161231}

■CA CAスクリプト編集

# cp -p /etc/pki/tls/misc/CA{,.org} # vim /etc/pki/tls/misc/CA # diff /etc/pki/tls/misc/CA.org 続きを読む »

SSL証明書の作成での failed to update database TXT_DB error number2 発生時の対処

SSLのサーバ証明書やクライアント証明書を作成しようとした場合に、次のようなエラーが発生することがあります。

[root ~]# openssl ca -in client.csr -out client.crt Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for ../../CA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: (略) Sign the certificate? [y/n]:y failed to update database TXT_DB error number 2

これは、CAに対する証明書要求を一旦 revoke(無効化)してから、再度、SSL証明書の作成を実行すれば、成功します。

[root ~]# openssl ca -revoke /etc/pki/CA/newcerts/00.pem

なお、/etc/pki/CA/index.txt の内容を削除してから、再度実行しても同じ結果が得られます。revoke でうまくいかない場合にも、この方法を試してみてください。 /etc/pki/CA/index.txt の内容削除は次の要領で行います。

続きを読む »

OpenSSLによるSSLサーバ証明書の作成

CentOS 5.6 上で、OpenSSLによるSSLサーバ証明書の作成方法をまとめておきます。

1.CAの作成 [root ~]# cd /etc/pki/tls/misc [root ~]# ll 合計 20 -rwxr-xr-x 1 root root 3758 3月 7 10:48 CA -rwxr-xr-x 1 root root 119 3月 7 10:48 c_hash -rwxr-xr-x 1 root root 152 3月 7 10:48 c_info -rwxr-xr-x 1 root root 112 3月 7 10:48 c_issuer -rwxr-xr-x 1 root root 110 3月 続きを読む »

OpenSSLによるSSLクライアント証明書の作成

CentOS 5.6 上で、OpenSSLによるSSLクライアント証明書の作成方法をまとめておきます。

1.CAの作成 [root ~]# cd /etc/pki/tls/misc [root ~]# ll 合計 20 -rwxr-xr-x 1 root root 3758 3月 7 10:48 CA -rwxr-xr-x 1 root root 119 3月 7 10:48 c_hash -rwxr-xr-x 1 root root 152 3月 7 10:48 c_info -rwxr-xr-x 1 root root 112 3月 7 10:48 c_issuer -rwxr-xr-x 1 root root 110 3月 続きを読む »

無料のSSLサーバ証明書発行サイト

SSLサーバ証明書というと、どうしてもベリサインなどの有料のものを考えてしまいがちですが、無料でサーバ証明書を発行してくれるサイトもあります。 そんな中の典型的なサイトが、

『CAcert』

だと思います。

CAcertを利用して、サーバ証明書を取得する手順を紹介しますが、注意点があります。

★証明する対象のフルドメイン(例えば、www.goofoo.jp)の有効な管理者Eメールアドレスが必要になります。手順の最後に下記の中から選択するように言われます。

root@www.goofoo.jp hostmaster@www.goofoo.jp postmaster@www.goofoo.jp admin@www.goofoo.jp webmaster@www.goofoo.jp

さて、それでは実際の手順に行きます。

1.参加(Join)

まずTOPページ右サイドバー上部にある「参加」(英語表記では「Join」)をクリックして、”本人登録”を行う必要があります。 姓名はローマ字にした方が文字化けしなくて済みます。 ここで、メールアドレスには自分が通常利用するEメールアドレスを入力してください。CAcertから登録や変更の通知メールが届きます。証明対象の管理者Eメールアドレスでする必要はないようです。単にログインIDとしてのものです。

2.ログイン

TOPページ右サイドバーの「パスワードログイン」から入って、”本人登録”したメールアドレスとパスフレーズを指定してログインします。

3.サーバ証明書の新規作成

ログイン後のページの右サイドバーで[サーバ証明書]→[新規作成]をクリックします。

4.CSR内容入力

表示された画面の下部の大きなテキストボックスに、CSR(作成については別記事を参照)の内容をコピー&ペーストします。

5.新規作成実行

[送信]ボタンをクリックします。

6.管理者Eメールアドレス選択

管理者のメールアドレスを”選べ”という画面に移ります。 これが、先ほどの注意事項に記述したドメイン管理者Eメールアドレスです。

7.サーバ証明書コピー

管理者Eメールアドレスの有効性が確認されると、サーバ証明書の内容が画面に表示されます。それをコピーして、server.crt などのファイルにペーストして保存すれば完了です。

※ちなみに、『CAcert』はFirefoxでは通常は文字化けすると思いますので、文字エンコーディングをEUC-JPに設定してみてください。また、IE8では日本語表示ができず、英語にしかならないようです。