Top過去ログ目次掲示板

作成日:2008年03月17日 作成:おやじ
掲示板で過去に質問された内容です。

No.7499 SSLサーバ3階層の実装


No.7499 投稿時間:2008年03月17日(Mon) 20:04 投稿者名:bondu URL:
タイトル:SSLサーバ3階層の実装

はじめまして。
最近会社でSSLサーバを立てることになり、こちらのサイトを参考にさせていただきました。

2階層までなら問題なく認証も通るようになったのですが
3階層にチャレンジし止っております。。。


症状としては中間CAとルートCAのチェーンがうまくいってないような感じです。
作成した各証明書をWindows上で、ルートCA・中間CAをインストールし
サーバ証明書を開いてみたところ中間CAの箇所に!マークがつき以下のエラーが表示されていました。
「この証明機関は証明書を発行する権限がないか、エンドエンティティ証明書として使うことができません。」
IEにて接続時には
「このセキュリティ証明書は信頼する会社から発行されていません。
証明書を表示して、この証明機関を信頼するかどうかを決めてください。」


■環境と作成の大まかな手順----------------------------------
Redhat9でApache2(v2.0.40)+modssl
証明書の作成方法はsign.shという付属のシェルを使っています。
手順としては
1ルートCAの準備 ※2階層時と同じ物を使用
# openssl md5 * > rand.dat
# openssl genrsa -rand rand.dat -des3 1024 > ca.key
# openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
# openssl x509 -inform pem -in ca.crt -outform der -out ca.der

2中間CAの準備
# openssl md5 * > rand.dat
# openssl genrsa -rand rand.dat -des3 1024 > ca.key
# openssl req -new -key server.key -out ca.csr

3中間CAの証明書発行
ルートCAにてca.csrを使用し、以下のコマンドで作成
# ./sign.sh /usr/local/CA/ca.csr
# openssl x509 -inform pem -in ca.crt -outform der -out ca1.der


4サーバの準備 ※2階層時と同じ物を使用
# openssl md5 * > rand.dat
# openssl genrsa -rand rand.dat -des3 1024 > server.key
# openssl req -new -key server.key -out server.csr

5サーバ証明書の発行
中間CAにてcsrを元にサーバ証明書を発行してもらう
# ./sign.sh /usr/local/apache2/conf/certs/server.csr

6ブラウザに1のca.derをインストール
※2階層時にインストール済み

7以下のようにhttpd-ssl.confファイルを編集
※編集箇所のみ記載
SSLCertificateFile /usr/local/apache2/conf/certs/server.crt
※2階層時のは別名です

SSLCertificateKeyFile /usr/local/apache2/conf/certs/server.key
※2回階層時と同じ設定

SSLCertificateChainFile /usr/local/CA/ca.der
※中間CAのDERを指定
------------------------------------------------------

ネットを調べても情報が見当たらず、途方にくれております。
ご教授よろしくお願いします。


No.7501 投稿時間:2008年03月18日(Tue) 18:38 投稿者名:おやじ URL:
タイトル:うまくいきそうにありません。

> 2階層までなら問題なく認証も通るようになったのですが
> 3階層にチャレンジし止っております。。。

これは、おやじも経験がありません。
パスがわからないこと、sing.shはコピーしたりしてるのかがはっきりしませんが、下記では明らかにうまくいかない気がします。
sign.shは内部でopenssl.conf相当を生成しているので、同じシェルで署名するとca.crt等がルートと同じになってしまうと思います。
従って、中間証明書がおかしくなるのでは?(opensslで中間証明書がチャントできるのか?)

> 症状としては中間CAとルートCAのチェーンがうまくいってないような感じです。
> 作成した各証明書をWindows上で、ルートCA・中間CAをインストールし
> サーバ証明書を開いてみたところ中間CAの箇所に!マークがつき以下のエラーが表示されていました。
> 「この証明機関は証明書を発行する権限がないか、エンドエンティティ証明書として使うことができません。」
> IEにて接続時には
> 「このセキュリティ証明書は信頼する会社から発行されていません。
> 証明書を表示して、この証明機関を信頼するかどうかを決めてください。」
>
>
> ■環境と作成の大まかな手順----------------------------------
> Redhat9でApache2(v2.0.40)+modssl
> 証明書の作成方法はsign.shという付属のシェルを使っています。
> 手順としては
> 1ルートCAの準備 ※2階層時と同じ物を使用
> # openssl md5 * > rand.dat
> # openssl genrsa -rand rand.dat -des3 1024 > ca.key
> # openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
> # openssl x509 -inform pem -in ca.crt -outform der -out ca.der
>
> 2中間CAの準備
> # openssl md5 * > rand.dat
> # openssl genrsa -rand rand.dat -des3 1024 > ca.key
> # openssl req -new -key server.key -out ca.csr

ca.key server.keyは誤記ですよね。

>
> 3中間CAの証明書発行
> ルートCAにてca.csrを使用し、以下のコマンドで作成
> # ./sign.sh /usr/local/CA/ca.csr
> # openssl x509 -inform pem -in ca.crt -outform der -out ca1.der
>
>
> 4サーバの準備 ※2階層時と同じ物を使用
> # openssl md5 * > rand.dat
> # openssl genrsa -rand rand.dat -des3 1024 > server.key
> # openssl req -new -key server.key -out server.csr
>
> 5サーバ証明書の発行
> 中間CAにてcsrを元にサーバ証明書を発行してもらう
> # ./sign.sh /usr/local/apache2/conf/certs/server.csr

このsign.shが問題。
>
> 6ブラウザに1のca.derをインストール
> ※2階層時にインストール済み
>
> 7以下のようにhttpd-ssl.confファイルを編集
> ※編集箇所のみ記載
> SSLCertificateFile /usr/local/apache2/conf/certs/server.crt
> ※2階層時のは別名です
>
> SSLCertificateKeyFile /usr/local/apache2/conf/certs/server.key
> ※2回階層時と同じ設定
>
> SSLCertificateChainFile /usr/local/CA/ca.der
> ※中間CAのDERを指定

ca.crtでは?

> ------------------------------------------------------
>
> ネットを調べても情報が見当たらず、途方にくれております。
> ご教授よろしくお願いします。

何も情報がないので、恐らくできないのでは? と思ってsign.shを改造してやってみましたが、中間CAを使っての署名が失敗してしまいます。
サーバ証明書を見てみると中間-ルートでチェーンが切れていました。


No.7502 投稿時間:2008年03月18日(Tue) 19:56 投稿者名:bondu URL:
タイトル:Re: うまくいきそうにありません。

おやじ様
わざわざ確認していただき、ありがとうございます。

そうですか・・・
私もあれからいろいろ調べてみて、サーバと同じ作り方では
だめなのかな?と思いはじめていたところです。

誤記については指摘どうりです、申し訳ありません。。


怪しいと思われるconfファイルなどいじくってがんばってみます。


No.7503 投稿時間:2008年03月18日(Tue) 20:54 投稿者名:bondu URL:
タイトル:なんとかできました(TT

おやじ様

以下のサイトを発見し、作成したところ3階層ができました。
http://www.ibm.com/developerworks/jp/java/library/j-certgen/#root

チェインに関するであろうコマンドに関して理解したわけではありませんが
とりあえず通りました。。

数日これで悩まされていたので、本当にうれしいです
ありがとうございました。


No.7504 投稿時間:2008年03月20日(Thu) 05:51 投稿者名:おやじ URL:
タイトル:中間CAの作成方法をまとめておきました。

> 以下のサイトを発見し、作成したところ3階層ができました。
> http://www.ibm.com/developerworks/jp/java/library/j-certgen/#root

情報ありがとうございます。
自己認証の中間CAに関する情報がほとんどないこと、結構、おやじの証明書のコンテンツをご覧になっている方がいることから、いただいた情報を参考におやじのところで紹介しているCA.plを使用した方法での中間CAの作成方法をまとめておきました。



掲示板▲頁先頭