CentOS 6 (Linux) でオレオレ証明書を作ってみた

サーバー

https、SSL証明書はベリサイン等のサーバー屋さんから買うのが普通なのですが、自分で証明書を作ることも可能です。

自分で作った証明書は、

通称オレオレ証明書と呼ばれ

世間的には信頼がありませんが、運用としてクライアント認証して使うとかなら、何ら問題はありません。

ちなみに、無料の証明書 Let's Encryptを使った証明書の使用例は以下にまとめました。

Let's Encrypt 無料のhttps(SSL)証明書のインストール&セットアップ
このたび、 無料のhttps(SSL)証明書であるLet's Encryptをインストール&セットアップしてみました...

スポンサーリンク
スポンサーリンク

ルートCAの作成

CentOS 6でオレオレ証明書を作る手順は以下の通りです。まずルートCAを作成します。

以下はwideCAという名称を使った例です。

/etc/pki/wideCA/CAを修正します。

/etc/pki/wideCA/opensslを修正します。

秘密鍵を作成します。

ルートCAファイル

説明 ファイル名
CA証明書 cacert.pem, newcerts/8A9DE388C73BFCF9.pem
CA秘密鍵 private/cakey.pem
CA証明書発行要求 certs/00.pem

サーバー証明書の作成

次にサーバー証明書を作成します。

以上でaaa.bbb.cccのサーバー証明書が作成されました。

mod_ssl ディレクティブ ファイル
SSLCertificateFile www.crt
SSLCertificateKeyFile www.key

failed to update database TXT_DB error number2 発生時の対処

何か途中で作成の失敗があって、再度作成しようとしたら以下のエラーが出ました。

このエラーが出たときは、index.txtを開いて作成しようとして失敗した証明書の行を削除します。

Apache2.4での設定

あらかじめ、mod_sslをインストールしておきます。

次に、

/etc/httpd/conf.d/ssl.conf

を開き、

SSLCertificateFile

SSLCertificateKeyFile

について作成したファイルを指定します。

この後、Apacheをreloadします。

以上でApacheの設定が完了しました。

ブラウザからアクセスして見るとChromeでは以下のエラーが表示されます。

この接続ではプライバシーが保護されません

攻撃者が、aaa.bbb.ccc 上のあなたの情報(パスワード、メッセージ、クレジット カード情報など)を不正に取得しようとしている可能性があります。

NET::ERR_CERT_AUTHORITY_INVALID

セキュリティで保護されたページに戻る詳細情報を表示しない

このサーバーが aaa.bbb.ccc であることを確認できませんでした。このサーバーのセキュリティ証明書は、ご使用のパソコンのオペレーティング システムによって信頼されているものではありません。原因としては、不適切な設定や、悪意のあるユーザーによる接続妨害が考えられます。

aaa.bbb.ccc にアクセスする(安全ではありません)

オレオレ証明書はブラウザからは認められていないことが分かります。

ブラウザのhttpsのあたりをクリックします。

image

「証明書情報」を押します。

以下の証明書の情報が表示されます。

image

まとめ

サーバーの世界では、証明書についてベリサイン等のサーバー屋さんから買えば信頼出来るっていう考えが成り立っています。

私はベリサインの実態もよくわかっていない中で奇妙な世界だと思っていました。

ベリサインが証明書の安全性のために特別な活動をしているのでしょうか?

あるいは、いわば既得権益なんでしょうか?

奇妙に感じつつもこの世界では、これが信なので多くのユーザーがログインする仕組みを提供するにはSSLの証明書を買うしか方法はないようです。

ちなみにSSLの証明書は安いやつで問題ありません。

この種は安いから性能が低いとか安いから信頼性が低いとかないので安いものをお薦めします。

↓ココのSSL証明書は日本語で申し込める中ではかなり安くていいと思います。

さくらのVPSサーバー

↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ

SSDプランが月々685円から使える!さくらのVPS