openssl
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*OpenSSL Configuration Manual [#bdca913f]
*目次 [#uc2b1fba]
#contents
opensslを用いればCA(認証局)や証明書を作ることができる。
手順を大雑把に記録しておく。
HTTPS通信関連は[[Apache]]のところに書きます。
Apacheでの証明書認証も書きたいねぇ
**項目について [#w29a77c4]
細かく書いていくのは大変だな・・・
がんばります。
|BGCOLOR(#FF6633):CENTER:項目|BGCOLOR(#ff6633):CENTER:略...
|CN|Common Nameの略||
|OU|Organization Unitの略|所属している組織の部署|
|O|Organization nameの略|所属している組織名|
|L|Locality nameの略|住んでいる町のことだね|
|S|State or province nameの略|都道府県名のことかな|
|C|Countryの略|国名|
|E|Emailの略|Eメールアドレス|
**コンフィグファイルの作成 [#r1293086]
opensslではコンフィグファイルがとても重要である。
ちなみにコンフィグファイルは1つ設定し、使いまわすよりも、
CA・クライアント証明書・サーバ証明書の3種類を用意したほう...
SSLで使用するファイルを格納するディレクトリを作る
mkdir /home/ca
デフォルトのopenssl.cnfをコピーする
cp /usr/share/ssl/openssl.cnf /home/ca/openssl.conf.ca
cp /usr/share/ssl/openssl.cnf /home/ca/openssl.conf.client
cp /usr/share/ssl/openssl.cnf /home/ca/openssl.conf.server
内容のサンプルをこのページに添付してある。
ちなみになぜClient証明書とServer証明書のコンフィグファイ...
以下の1点を間違いやすいからである
>>nsCertType = server
これは証明書の使用目的のようなものを指定するのであるが、
文字のとおりserverはWebやその他のホスト側で使う証明書であ...
一方クライアントは
>>nsCertType = client, email, objsign
このように表記され、ゲスト側の認証証明書として使用される...
これを間違って設定すると正しい認証が行われない。
しかーし!IEではこの値は見ないため間逆な設定の証明書でも...
一方NetscapeやMozilla・最近流行のFireFoxなどではエラーが...
私はこのミスを何度か繰り返したため、ClientとServerの証明...
頭のいい方なら、その都度修正して使っていただいたほうがい...
**CAの構築 [#c33a9770]
***CA作成の前準備 [#bdade6c7]
/usr/share/ssl/misc/CAに以下の内容を追加
SSLEAY_CONFIG="-sha1 -config /home/ca/openssl.conf.ca" ...
REQ="openssl req $SSLEAY_CONFIG"
CA="openssl ca $SSLEAY_CONFIG"
VERIFY="openssl verify"
X509="openssl x509"
この一行を追加しなければCAの証明書でsha1を使うことができ...
また、Configファイルを指定することで、指定ミスをなくす。
&br;
&br;
久しぶりにCAを作成しようと思ったら、上記では対応できなか...
試しに、sha512を使用した証明書を作成する場合には、
CAファイルの中を修正する必要がある。
CADAYS="-days 3650" # 3 years
SSLEAY_CONFIG="-config /root/ca/openssl.cnf.ca"
REQ="$OPENSSL req $SSLEAY_CONFIG"
CA="$OPENSSL ca $SSLEAY_CONFIG"
VERIFY="$OPENSSL verify"
X509="$OPENSSL x509"
PKCS12="openssl pkcs12"
少し飛んで・・・
echo "Making CA certificate ..."
$REQ -new -sha512 -keyout ${CATOP}/private/$CAKEY \
-out ${CATOP}/$CAREQ
$CA -create_serial -md sha512 -out ${CATOP}/$CACERT $CAD...
-keyfile ${CATOP}/private/$CAKEY -selfsign \
-extensions v3_ca \
-infiles ${CATOP}/$CAREQ
RET=$?
直接コマンドのところへメッセージダイジェストのパラメータ...
&br;
***CAの作成 [#a33a3696]
cd /home/ca
/usr/share/ssl/misc/CA -newca
作成したCAは/home/ca/demoCAディレクトリ以下に格納される
**クライアント証明書の作成 [#h730805a]
***リクエストファイルの作成 [#z671ab5a]
第一段階としてCSR(Certificate Signing Request)という証明...
この要求に基づき、CAは証明書に署名する。
openssl req -new -keyout privkey.key -out new.req -confi...
このコマンドを実行することでprivkey.keyという秘密キーとne...
***リクエストファイルに対する署名 [#f803f4fd]
クライアントから渡されたリクエストに対し、CAは署名をして...
実際には改行しない
openssl ca -in new.req -keyfile demoCA/private/cakey.pem...
-out new.cer -config openssl.conf.client
***PEM形式へのエンコード [#lefef71a]
出力されたファイルはテキスト形式のため、PEM形式へ変換する。
以下のコマンドを実行
openssl x509 -in new.cer -inform PEM -out new.pem
これでクライアント証明書ファイルの出来上がり。
作成した証明書の詳細を見るためには以下のコマンドを実行。
openssl x509 -text -in new.pem
***PKCS12ファイルの作成 [#u79b55bb]
クライアント証明書としてPKCS12ファイルを作っておくと、Win...
openssl pkcs12 -export -inkey privkey.key -in new.pem -c...
**サーバ証明書の作成 [#cbaa0cb7]
***リクエストファイルの作成 [#ob35b6f3]
基本的にはクライアント証明書作成手順と同じ。
コンフィグファイルが違うだけである。
openssl req -new -keyout privkey2.key -out new2.req -con...
***リクエストファイルに対する署名 [#cabd6e81]
こちらもクライアント証明書作成と同じ。
実際には改行しない。
openssl ca -in new2.req -keyfile demoCA/private/cakey.pe...
-out new2.cer -config openssl.conf.server
***PEM形式へのエンコード [#n028f91a]
こちらもPEM形式へ変換する。
openssl x509 -in new2.cer -inform PEM -out new2.pem
これでサーバ証明書ファイルの出来上がり。
***秘密キーのパスフレーズを埋め込む [#ga75e2dd]
本来秘密キーを使う場合には設定したパスフレーズを入力する...
そのため、作成した証明書に秘密キーを埋め込んでしまい、使...
openssl rsa -in privkey2.key -out privkey2.key
基本的にApacheやPOP over SSL/TLS等で使用する際にはパスフ...
設定次第ではパスフレーズを解除しなくてもよい方法もある。...
**CRLの作成 [#g1059023]
***証明書の失効 [#n3e6ff42]
秘密鍵が洩れてしまったり、証明書を作り直したい場合などに...
openssl ca -gencrl -revoke new.pem -config openssl.conf.ca
***有効期限が切れた証明書の失効 [#b449c60f]
証明書のDBは有効期限が切れていたとしても自動的にその情報...
openssl ca -updatedb -config conf/openssl.conf.ca
***CRLの作成 [#j87956ac]
openssl ca -gencrl -out crl.pem -config openssl.conf.ca
**証明書の更新 [#d3f72047]
***ルート証明書の更新 [#fac2a1d1]
openssl req -new -x509 -nodes -sha1 -days 3650 -in privk...
-out new.req -config openssl.conf.ca
***クライアント・サーバ証明書の更新 [#i4299141]
基本的に古い証明書を失効させ、新しい証明書を作り直せばい...
*参考リンク [#g4700798]
-[[openssl.org:http://www.openssl.org/]]
終了行:
*OpenSSL Configuration Manual [#bdca913f]
*目次 [#uc2b1fba]
#contents
opensslを用いればCA(認証局)や証明書を作ることができる。
手順を大雑把に記録しておく。
HTTPS通信関連は[[Apache]]のところに書きます。
Apacheでの証明書認証も書きたいねぇ
**項目について [#w29a77c4]
細かく書いていくのは大変だな・・・
がんばります。
|BGCOLOR(#FF6633):CENTER:項目|BGCOLOR(#ff6633):CENTER:略...
|CN|Common Nameの略||
|OU|Organization Unitの略|所属している組織の部署|
|O|Organization nameの略|所属している組織名|
|L|Locality nameの略|住んでいる町のことだね|
|S|State or province nameの略|都道府県名のことかな|
|C|Countryの略|国名|
|E|Emailの略|Eメールアドレス|
**コンフィグファイルの作成 [#r1293086]
opensslではコンフィグファイルがとても重要である。
ちなみにコンフィグファイルは1つ設定し、使いまわすよりも、
CA・クライアント証明書・サーバ証明書の3種類を用意したほう...
SSLで使用するファイルを格納するディレクトリを作る
mkdir /home/ca
デフォルトのopenssl.cnfをコピーする
cp /usr/share/ssl/openssl.cnf /home/ca/openssl.conf.ca
cp /usr/share/ssl/openssl.cnf /home/ca/openssl.conf.client
cp /usr/share/ssl/openssl.cnf /home/ca/openssl.conf.server
内容のサンプルをこのページに添付してある。
ちなみになぜClient証明書とServer証明書のコンフィグファイ...
以下の1点を間違いやすいからである
>>nsCertType = server
これは証明書の使用目的のようなものを指定するのであるが、
文字のとおりserverはWebやその他のホスト側で使う証明書であ...
一方クライアントは
>>nsCertType = client, email, objsign
このように表記され、ゲスト側の認証証明書として使用される...
これを間違って設定すると正しい認証が行われない。
しかーし!IEではこの値は見ないため間逆な設定の証明書でも...
一方NetscapeやMozilla・最近流行のFireFoxなどではエラーが...
私はこのミスを何度か繰り返したため、ClientとServerの証明...
頭のいい方なら、その都度修正して使っていただいたほうがい...
**CAの構築 [#c33a9770]
***CA作成の前準備 [#bdade6c7]
/usr/share/ssl/misc/CAに以下の内容を追加
SSLEAY_CONFIG="-sha1 -config /home/ca/openssl.conf.ca" ...
REQ="openssl req $SSLEAY_CONFIG"
CA="openssl ca $SSLEAY_CONFIG"
VERIFY="openssl verify"
X509="openssl x509"
この一行を追加しなければCAの証明書でsha1を使うことができ...
また、Configファイルを指定することで、指定ミスをなくす。
&br;
&br;
久しぶりにCAを作成しようと思ったら、上記では対応できなか...
試しに、sha512を使用した証明書を作成する場合には、
CAファイルの中を修正する必要がある。
CADAYS="-days 3650" # 3 years
SSLEAY_CONFIG="-config /root/ca/openssl.cnf.ca"
REQ="$OPENSSL req $SSLEAY_CONFIG"
CA="$OPENSSL ca $SSLEAY_CONFIG"
VERIFY="$OPENSSL verify"
X509="$OPENSSL x509"
PKCS12="openssl pkcs12"
少し飛んで・・・
echo "Making CA certificate ..."
$REQ -new -sha512 -keyout ${CATOP}/private/$CAKEY \
-out ${CATOP}/$CAREQ
$CA -create_serial -md sha512 -out ${CATOP}/$CACERT $CAD...
-keyfile ${CATOP}/private/$CAKEY -selfsign \
-extensions v3_ca \
-infiles ${CATOP}/$CAREQ
RET=$?
直接コマンドのところへメッセージダイジェストのパラメータ...
&br;
***CAの作成 [#a33a3696]
cd /home/ca
/usr/share/ssl/misc/CA -newca
作成したCAは/home/ca/demoCAディレクトリ以下に格納される
**クライアント証明書の作成 [#h730805a]
***リクエストファイルの作成 [#z671ab5a]
第一段階としてCSR(Certificate Signing Request)という証明...
この要求に基づき、CAは証明書に署名する。
openssl req -new -keyout privkey.key -out new.req -confi...
このコマンドを実行することでprivkey.keyという秘密キーとne...
***リクエストファイルに対する署名 [#f803f4fd]
クライアントから渡されたリクエストに対し、CAは署名をして...
実際には改行しない
openssl ca -in new.req -keyfile demoCA/private/cakey.pem...
-out new.cer -config openssl.conf.client
***PEM形式へのエンコード [#lefef71a]
出力されたファイルはテキスト形式のため、PEM形式へ変換する。
以下のコマンドを実行
openssl x509 -in new.cer -inform PEM -out new.pem
これでクライアント証明書ファイルの出来上がり。
作成した証明書の詳細を見るためには以下のコマンドを実行。
openssl x509 -text -in new.pem
***PKCS12ファイルの作成 [#u79b55bb]
クライアント証明書としてPKCS12ファイルを作っておくと、Win...
openssl pkcs12 -export -inkey privkey.key -in new.pem -c...
**サーバ証明書の作成 [#cbaa0cb7]
***リクエストファイルの作成 [#ob35b6f3]
基本的にはクライアント証明書作成手順と同じ。
コンフィグファイルが違うだけである。
openssl req -new -keyout privkey2.key -out new2.req -con...
***リクエストファイルに対する署名 [#cabd6e81]
こちらもクライアント証明書作成と同じ。
実際には改行しない。
openssl ca -in new2.req -keyfile demoCA/private/cakey.pe...
-out new2.cer -config openssl.conf.server
***PEM形式へのエンコード [#n028f91a]
こちらもPEM形式へ変換する。
openssl x509 -in new2.cer -inform PEM -out new2.pem
これでサーバ証明書ファイルの出来上がり。
***秘密キーのパスフレーズを埋め込む [#ga75e2dd]
本来秘密キーを使う場合には設定したパスフレーズを入力する...
そのため、作成した証明書に秘密キーを埋め込んでしまい、使...
openssl rsa -in privkey2.key -out privkey2.key
基本的にApacheやPOP over SSL/TLS等で使用する際にはパスフ...
設定次第ではパスフレーズを解除しなくてもよい方法もある。...
**CRLの作成 [#g1059023]
***証明書の失効 [#n3e6ff42]
秘密鍵が洩れてしまったり、証明書を作り直したい場合などに...
openssl ca -gencrl -revoke new.pem -config openssl.conf.ca
***有効期限が切れた証明書の失効 [#b449c60f]
証明書のDBは有効期限が切れていたとしても自動的にその情報...
openssl ca -updatedb -config conf/openssl.conf.ca
***CRLの作成 [#j87956ac]
openssl ca -gencrl -out crl.pem -config openssl.conf.ca
**証明書の更新 [#d3f72047]
***ルート証明書の更新 [#fac2a1d1]
openssl req -new -x509 -nodes -sha1 -days 3650 -in privk...
-out new.req -config openssl.conf.ca
***クライアント・サーバ証明書の更新 [#i4299141]
基本的に古い証明書を失効させ、新しい証明書を作り直せばい...
*参考リンク [#g4700798]
-[[openssl.org:http://www.openssl.org/]]
ページ名: