- PR -

Apache+Opensslがみれない

1
投稿者投稿内容
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2005-04-23 11:01
現在ApacheとOpensslでの連携をやっているのですが、httpは普通に表示されるのですが、SSLのほうがどうもうまくWebが表示されません。

ssl.confの設定がおかしいのでしょうか。
DocumentRootなどの設定はきちんとしたのですが・・・

起動について /etc/rc.d/init.d/httpd startssl で起動しています。

Redhat9
Apache/2.0.53 (Unix)
mod_ssl/2.0.53 OpenSSL/0.9.6c
PHP/4.3.10

どなたかわかりそうな方お願いします。お助けください。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-04-23 12:10
引用:
どなたかわかりそうな方お願いします。お助けください。


どなたもわかりそうに無いと思います。

…だけでは何ですので。

問題点をまとめるなり、判断材料を提供して貰えなければ、誰もアドバイスできないでしょう。
最低限、

・以前は問題なかったか。そうであれば、最近行った変更作業等は無いか
・エラーログ等に何か情報が無いか
・アプリケーションよりも下のレイヤではどうか。
 (期待したポートが開かれているか、ネットワーク通信がフィルタされていないか等)
・そもそも設定ファイルの内容は
 (長ければできる範囲で要約する)

※サーバ上にあるデータを載せる時は、自身の判断で意訳するのはなるべく避け、具体的にありのまま書く。

位は考えて頂かないと…。
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2005-04-23 20:44
angelさんありがとうございます。
すみませんでした。あせりだけが先走って肝心なことを書き忘れてしまいました。

新規でsslサーバを構築しておりまして、以前からhttpサーバは稼動しておりました。
以前からあったhttpサーバと連動してsslサーバを構築しようと考えたのですが、うまくいかないということです。

エラーについては、

Syntax error on line 108 of /usr/local/etc/apache2/ssl.conf:
SSLCertificateFile: file '/usr/local/etc/apache2/ssl.crt/server.crt'
does not exist or is empty

のようなエラーが出ていたので、

http://www.fkimura.com/courier-imap2.html
を参考に解消いたしました。

エラーログには、RSA server certificate CommonName (CN) `hogehoge' does NOT match server name!?

と記録されています。

ポートについてはきちんと
netstat -lコマンドにて確認したところ
tcp 0 0 *:https *:* LISTEN

と表示されました。



設定ファイルについては ssl.conf

<VirtualHost _default_:443>

# General setup for the virtual host
DocumentRoot "/home/hogehoge/public_html/"
ServerName www.hogehoge.jp:443
ServerAdmin hogehoge@odn.ne.jp
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log

その他はデフォルト設定です。

多分エラーログに記載されているca認証のhost名が一致しないといっていると思われますが、ca認証の作り方がうまくなかったのでしょうか。

SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key

上記の二つだと思うのですが、どうもCAの作り方がよくわかりません。

angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-04-24 00:03
こんばんは。
引用:
多分エラーログに記載されているca認証のhost名が一致しないといっていると思われますが、ca認証の作り方がうまくなかったのでしょうか。


SSL対応のApacheを動作させるのには、CA はとりあえず関係ないと思います。
ただ、HTTPS に関しては、証明書の CN とサーバドメイン名は一致させるのがお約束なので、それで警告が出ているのでしょう。動作自体はできるように思いますが…。
証明書関連のオペレーションが掴めないなら、ベリサインのテスト証明書を使って、一般の SSL サイト運営のシミュレートをする手もあると思います。
(ベリサインのサイトには、一連のオペレーションが説明してあります)

…それで、まずは SSL 通信ができるかどうかですよね?
問題は、ページが表示されないというのがどういう内容かに依りますね。
(まさか、netfilter/iptables でフィルタされてたなんて、言わないで下さいよ)
コマンドレベルで通信を試すだけなら、openssl コマンドでもできますから、試してみるのも手でしょう。

 $ openssl s_client -connect ホスト名:ポート番号

で接続できれば、HTTPリクエストを送信して反応を見ることもできますから。

ちなみに、@IT のサイトで SSL通信を試みた時の例です。

引用:
$ openssl s_client -connect www.atmarkit.co.jp:443改行
(中略)
---
SSL handshake has read 1320 bytes and written 340 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
SSL-Session:
(中略)
---
HEAD / HTTP/1.0改行
改行
HTTP/1.1 404 Not Found
(後略)


※太字はこちらから入力した内容。改行はそのまま改行(Enter)です。
※対応するコンテンツが無いので、404エラーになってますが、まぁ通信はできていますね。

以上、ご参考まで。

追記:念のため、ですが、私はオレオレ証明書(独自のCAで発行した証明書)はお奨めしません(但し条件に依る)。このことについては、高木浩光氏のblogが非常に勉強になると思います。

[ メッセージ編集済み 編集者: angel 編集日時 2005-04-24 00:19 ]
Uta
常連さん
会議室デビュー日: 2004/05/17
投稿数: 37
投稿日時: 2005-04-24 06:54
tailコマンドか何かでaccess_logとerror_logを監視しながら、
httpアクセス(成功するんですよね?)とhttpsアクセスを行って、
その違いを見てみたら如何でしょうか?


引用:
SSLのほうがどうもうまくWebが表示されません。


と言われましても、聞かれる方は困ってしまいます。
エラーコードや出力されるエラーメッセージを記述して頂かないと
何が原因でエラーになっているのかの手がかりもわかりません。


引用:
<VirtualHost _default_:443>

# General setup for the virtual host
DocumentRoot "/home/hogehoge/public_html/"
ServerName www.hogehoge.jp:443
ServerAdmin hogehoge@odn.ne.jp
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log


DocumentRootは最後の「/」はつけてはいけないという仕様です。
ApacheドキュメントのDocumentRootの項目の最終行をご参照ください。
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2005-04-24 08:13
utaさんangelさんありがとうございます。
ちょっと皆さんに示していただいたことをやってみます。

Documentrootの最後には/はつけない・・・
すっかり忘れていました。直します。

1

スキルアップ/キャリアアップ(JOB@IT)