Edited at

テスト用のSSL証明書を作成する

More than 1 year has passed since last update.


目的

SSLを使った各種テストをするときに、テスト用のSSL証明書があると便利なんで、作成手順をまとめました。

CA局をたてて、いろんなドメインの証明書をつくることができるのが目的です。CA局をつくって、それから、いろんなドメインの証明書を発行します。


準備

1.CentOS 6.5 など (openssl がはいっていれば、なんでもいいです。)

2.openssl

参考 http://qiita.com/mako10z/items/ef15372d4cf4621a674e


作成手順(CA局)

作業には、root 権限が必要です。

openssl の設定ファイル (CentOS では、/etc/pki/tls/openssl.cnf)は、コンパイル時に

決め打ちのようです。環境変数で、別の設定ファイルを見に行ったりできるかもしれませんが、

よくわからないので、既定のopenssl の設定ファイルに変更をかけます。

※ コードは、シェルスクリプトにすれば動くように書いてあります。ディレクトリをBにしてあります。


CA局ディレクトリ作成

まず、CA局を入れるディレクトリを作成します。(ディレクトリ名は任意です。)

とりあえず、/etc/pki/hogeCA にしました。


mkdir /etc/pki/hogeCA

mkdir /etc/pki/hogeCA/private

mkdir /etc/pki/hogeCA/newcerts



openssl.cnf 変更

/etc/pki/tls/openssl.cnf を2箇所変更します。

※ OSによって、openssl.cnf 設定ファイル名や置かれている場所は異なります。


CA局ディレクトリの指定


[ CA_default ]

dir = /etc/pki/hogeCA



POLICY の指定

いろんなドメインに対して証明書を発行できるCA局にします。

policy は、policy_match になっていますが、policy_anything に変更です。

これで、どんなドメイン(SSL用語では、common name)でも対応できます。


policy = policy_anything



CA局作成


初期値設定


echo "01" > /etc/pki/hogeCA/serial

touch /etc/pki/hogeCA/index.txt



3年間程度有効なCA局(-days 1825 の部分がその指定)つくります。

B="/etc/pki/hogeCA"

openssl req -new -x509 -newkey rsa:2048 \
-out $B/cacert.pem -keyout \
$B/private/cakey.pem -days 1825

いろいろ設定を聞かれますが。とりあえず、下記のように答えておきました。

policy がanything とゆるいので適当でいいです。

パスワードも適当にどうぞ


Country Name (2 letter code) [XX]:JP

State or Province Name (full name) []:Tokyo

Locality Name (eg, city) [Default City]:chiyodaku

Organization Name (eg, company) [Default Company Ltd]:hoge

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:hoge.com



確認

設定がきちんとできているかを確認できます。



B="/etc/pki/hogeCA"

openssl x509 -in $B/cacert.pem -text


ブラウザ用のCA局証明書

ブラウザに取り込んでオレオレ証明書でも、エラーがでないようにするためのCA局証明書を

つくります。hogecert.der がそれです。



B="/etc/pki/hogeCA"

openssl x509 -inform PEM -outform DER -in $B/cacert.pem -out $B/hogecert.der



hogecert.der はバイナリファイルです。

取り込みは、ブラウザごとにことなります。

WEB 上に一時的にあげて、

.htaccess で、AddType application/x-x509-ca-cert der を設定して

ダウンロードするのがインストールでは便利でしょう。


証明書発行


秘密鍵とCSR(証明書要求) を一緒につくる



password は適当にいれてあとで抜きます。設定は省略可能なのですが、common name (ドメイン名)

は設定しましょう。

B="/etc/pki/hogeCA"

openssl req -new -keyout $B/hoge_key.pem -out $B/hoge_csr.pem

作業上面倒なので、秘密鍵からパスワードを除く



B="/etc/pki/hogeCA"

openssl rsa -in $B/hoge_key.pem -out $B/hoge_key.pem


CSRから証明書をつくる

B="/etc/pki/hogeCA"

openssl ca -out $B/hoge_cert.pem -infiles $B/hoge_csr.pem

証明書を確認する



B="/etc/pki/hogeCA"

openssl x509 -in $B/hoge_cert.pem -text


web で設定する。

あとは、hoge_key.pem と hoge_cert.pem を、apache のSSL設定の中で

次のように設定します。

SSLCertificateFile /etc/pki/hogeCA/hoge_cert.pem

SSLCertificateKeyFile /etc/pki/hogeCA/hoge_key.pem