Top過去ログ目次掲示板

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

No.3777 Apache2にてSSL


No.3777 投稿時間:2004年10月15日(Fri) 14:47 投稿者名:ガリー URL:
タイトル:Apache2にてSSL

皆様、お久しぶりです。

FedoraCore1でApache2+SSLを構築しています。
それについて以前にもご質問いたしましが、
まだ解決に至ってません。

今回は、なんとかおやじ様がご紹介されている方法を
そのままの通りでSSLのインストール、設定をしていきました。

一応、起動スクリプトに-D SSLと追加していますし、
/etc/rc,d/init.d/httpd restartで起動も問題なく出来ています。
しかし、いざ
https://xxxx.xxx/でアクセスしようとしますと、
ページを開いていますとなり応答がありません。
しまいには、ページを表示できませんのエラーになります。
ポートも443、TCPで空けてますし、
証明書の作成もやっております。
Webもバーチャルサーバで2,3個のドメインを動かしております。
ssl.configでは、一応、WebmasterのDocumentRootを指定して
バーチャルサーバにて設定しております。。
ログには、SSLをアクセスしたときに吐かれるようなログは
出来ません。
私が、見る限り設定ミスではないようですが、
一向に繋がってくれません。。

ログに表示されれば、まだ楽なのですが
何しろ何も表示されませんし。
もちろん、httpd.config、ssl.config共にログの出力先ディレクトリを
別にし、それぞれerror_logなどを確認していますが、
httpdの方もSSLの方のログにも、一切それらしきログは表示されません。
首が回らない状態ですので、どなたかお力を貸していただけたらと
思い、書き込みしている次第でございます。。

情報不足でレスしようがないかもしれませんが、
どうか、お知恵をお貸しください。
よろしくお願いします。


No.3780 投稿時間:2004年10月15日(Fri) 21:52 投稿者名:おやじ URL:http://http://www.aconus.com/~oyaji/
タイトル:状況を正確に把握しないと分かりません。

> FedoraCore1でApache2+SSLを構築しています。
> それについて以前にもご質問いたしましが、
> まだ解決に至ってません。
>
> 今回は、なんとかおやじ様がご紹介されている方法を
> そのままの通りでSSLのインストール、設定をしていきました。
>
> 一応、起動スクリプトに-D SSLと追加していますし、

ということは、ソースから入れたのですか?

> /etc/rc,d/init.d/httpd restartで起動も問題なく出来ています。
> しかし、いざ
> https://xxxx.xxx/でアクセスしようとしますと、
> ページを開いていますとなり応答がありません。

どこから、どこへというアクセス環境が分からないとコメントはほとんどできません。
xxx.xxxとは何ですか? ホスト名? プライベートIP? グローバルIP? これらと、上記アクセス条件がわからないと判断できません。
それ以前に、netstat -an --tcp で443が見えてますか?
見えているなら、http://localhost/で何か見えますか?
 
> しまいには、ページを表示できませんのエラーになります。
> ポートも443、TCPで空けてますし、
> 証明書の作成もやっております。
> Webもバーチャルサーバで2,3個のドメインを動かしております。
> ssl.configでは、一応、WebmasterのDocumentRootを指定して
> バーチャルサーバにて設定しております。。
> ログには、SSLをアクセスしたときに吐かれるようなログは
> 出来ません。
> 私が、見る限り設定ミスではないようですが、
> 一向に繋がってくれません。。

 設定ミス(Apache? firewall? router? ・・・)がなければ絶対に動きます。

>
> ログに表示されれば、まだ楽なのですが
> 何しろ何も表示されませんし。

ということは、見落としでないならapacheまできていないはずです。


No.3781 投稿時間:2004年10月16日(Sat) 00:47 投稿者名:ガリー URL:
タイトル:Re: 状況を正確に把握しないと分かりません。

おやじ様、レスありがとうございます。


> ということは、ソースから入れたのですか?

はい、Apache2.0.50をソースから入れております。

# cd /usr/local/apache2/bin
# ./httpd -l

上記で確認したところ、モジュールでもsslが加わっております。

> どこから、どこへというアクセス環境が分からないとコメントはほとんどできません。
> xxx.xxxとは何ですか? ホスト名? プライベートIP? グローバルIP? これらと、上記アクセス条件がわからないと判断できません。
> それ以前に、netstat -an --tcp で443が見えてますか?
> 見えているなら、http://localhost/で何か見えますか?

xxx.xxxとは、ホスト名、プライベートIP、グローバルIP全て試しましたが、全て同様です。
サーバ機からXwindowでhttp://localhost/でアクセスしてみましたが、テストで自分が用意したトップページが
表示されております。
ちなみに、httpd.confでのDocumentRootと、ssl.confでのDocumentRootは全く同一の物にしています。

>  設定ミス(Apache? firewall? router? ・・・)がなければ絶対に動きます。

Apacheの設定ミスは断定出来ませんが、Firewallはまだ構築していませんし、ルータ(BAR HGWLを使用)は
Apache用80番とSSL用443番をサーバのプライベートIPへ向けて開放しています。
SSLのポートはTCPでよろしかったのですよね・・・?


> ということは、見落としでないならapacheまできていないはずです。


No.3782 投稿時間:2004年10月16日(Sat) 01:59 投稿者名:おやじ URL:http://http://www.aconus.com/~oyaji/
タイトル:まだ、情報が不足してます。

問題をローカライズするために、いろいろ聞いてますが、無駄なことは聞いてませんので、省略せずに答えていただけたらと思います。総合的に切り分けるために必要な情報を知りたいので、省かれてしまうと判断できません。

> > どこから、どこへというアクセス環境が分からないとコメントはほとんどできません。
> > xxx.xxxとは何ですか? ホスト名? プライベートIP? グローバルIP? これらと、上記アクセス条件がわからないと判断できません。
> > それ以前に、netstat -an --tcp で443が見えてますか?

こちらは、どうなっていますか?

> > 見えているなら、http://localhost/で何か見えますか?
>
> xxx.xxxとは、ホスト名、プライベートIP、グローバルIP全て試しましたが、全て同様です。

どこからという情報もあわせて考えないと意味がありません。
どういうアクセス方法なのですか?

> サーバ機からXwindowでhttp://localhost/でアクセスしてみましたが、テストで自分が用意したトップページが
> 表示されております。

これは、httpsと書いたつもりだったのですが、ごめんなさい。
で、改めて、https://localhost/では?

> ちなみに、httpd.confでのDocumentRootと、ssl.confでのDocumentRootは全く同一の物にしています。
>
> >  設定ミス(Apache? firewall? router? ・・・)がなければ絶対に動きます。
>
> Apacheの設定ミスは断定出来ませんが、Firewallはまだ構築していませんし、ルータ(BAR HGWLを使用)は
> Apache用80番とSSL用443番をサーバのプライベートIPへ向けて開放しています。
> SSLのポートはTCPでよろしかったのですよね・・・?

 TCPです。


No.3783 投稿時間:2004年10月16日(Sat) 06:46 投稿者名:ガリー URL:
タイトル:Re: https://localhost/でも接続は不可能

おはようございます。
必要な情報等が抜けまして申し訳ございません。


> > > どこから、どこへというアクセス環境が分からないとコメントはほとんどできません。
> > > xxx.xxxとは何ですか? ホスト名? プライベートIP? グローバルIP? これらと、上記アクセス条件がわからないと判断できません。
> > > それ以前に、netstat -an --tcp で443が見えてますか?


Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:32769 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN

この通り問題ないように見えます。

>
> > > 見えているなら、http://localhost/で何か見えますか?
> どこからという情報もあわせて考えないと意味がありません。
> どういうアクセス方法なのですか?
>
> これは、httpsと書いたつもりだったのですが、ごめんなさい。
> で、改めて、https://localhost/では?

localhost への接続は予期せず終了しました。部分的にデータが転送されているかもしれません。
と表示されました。
https://localhost/は、サーバ機のXから実行しました。
普段は、同じルータ内のクライアントPCからアクセステストしています。
(プライベートIP、グローバルIP、主にホスト名)

このような感じでよろしいでしょうか?
また情報不足がございましたら、ご指摘ください。
よろしくお願いします。


No.3784 投稿時間:2004年10月16日(Sat) 07:20 投稿者名:おやじ URL:http://http://www.aconus.com/~oyaji/
タイトル:デーモンは動いています。

> > > > それ以前に、netstat -an --tcp で443が見えてますか?
>
>
> Proto Recv-Q Send-Q Local Address Foreign Address State
> tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
> tcp 0 0 127.0.0.1:32769 0.0.0.0:* LISTEN
> tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
> tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
> tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
> tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
> tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
> tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
> tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
>
> この通り問題ないように見えます。

起動してますね。

> > > > 見えているなら、http://localhost/で何か見えますか?
> > どこからという情報もあわせて考えないと意味がありません。
> > どういうアクセス方法なのですか?
> >
> > これは、httpsと書いたつもりだったのですが、ごめんなさい。
> > で、改めて、https://localhost/では?
>
> localhost への接続は予期せず終了しました。部分的にデータが転送されているかもしれません。
> と表示されました。
> https://localhost/は、サーバ機のXから実行しました。

 これは、確認方法を誤ったようです。Windowsはこれでも動作しますが、Linuxは上記エラーになってしまうようです。ということは、ほぼ間違いなく動いている気がします。

> 普段は、同じルータ内のクライアントPCからアクセステストしています。
> (プライベートIP、グローバルIP、主にホスト名)

 仮にhttpではどれでもいけるルータでもhttpsの場合は、同じルータ内のクライアントPCからプライベートIP以外ではアクセスできないと思いますので、これでテストして見てください。
 これで、タイムアウトして見えなければ、

# iptables --list

でフィルタを確認してはどうでしょうか?遮断されているぐらいしか思いつきません。


No.3785 投稿時間:2004年10月16日(Sat) 07:32 投稿者名:ガリー URL:
タイトル:Re: プライベートIPでの接続は出来ません。

>  仮にhttpではどれでもいけるルータでもhttpsの場合は、同じルータ内のクライアントPCからプライベートIP以外ではアクセスできないと思いますので、これでテストして見てください。
>  これで、タイムアウトして見えなければ、
>
> # iptables --list
>
> でフィルタを確認してはどうでしょうか?遮断されているぐらいしか思いつきません。

プライベートIPでは接続できませんでしたので、

# iptables --list

を実行しましたところ、


Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT ipv6-crypt-- anywhere anywhere
ACCEPT ipv6-auth-- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:pop3
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-hos
t-prohibited

と表示されました。
SSLがないように思えるのですが、問題ないのでしょうかね・・・汗


No.3786 投稿時間:2004年10月16日(Sat) 08:27 投稿者名:おやじ URL:http://http://www.aconus.com/~oyaji/
タイトル:しっかりファイヤウォールが効いてますよね。

> プライベートIPでは接続できませんでしたので、
>
> # iptables --list
>
> を実行しましたところ、
>
>
> Chain INPUT (policy ACCEPT)
> target prot opt source destination
> RH-Firewall-1-INPUT all -- anywhere anywhere
>
> Chain FORWARD (policy ACCEPT)
> target prot opt source destination
> RH-Firewall-1-INPUT all -- anywhere anywhere
>
> Chain OUTPUT (policy ACCEPT)
> target prot opt source destination
>
> Chain RH-Firewall-1-INPUT (2 references)
> target prot opt source destination
> ACCEPT all -- anywhere anywhere
> ACCEPT icmp -- anywhere anywhere icmp any
> ACCEPT ipv6-crypt-- anywhere anywhere
> ACCEPT ipv6-auth-- anywhere anywhere
> ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
> ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:pop3
> ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:smtp
> ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
> ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
> ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
> REJECT all -- anywhere anywhere reject-with icmp-hos
> t-prohibited
>
> と表示されました。
> SSLがないように思えるのですが、問題ないのでしょうかね・・・汗

ファイヤウォールは設定していないとおっしゃってましたが、しっかり効いてますよね。
「システム設定」->「セキュリティレベル」で設置画面がでますが、ファイヤウォールが有効になっていて、信頼できるサービスとして上記にでているサービスにチェックマークが入っているはずです。HTTPSは無いでしょうから、一番下の他のポート欄に、「443:tcp」を追加してあげればおしまいでしょう。


No.3787 投稿時間:2004年10月16日(Sat) 08:57 投稿者名:ガリー URL:
タイトル:Re: ファイアーウォールが原因でした。


> ファイヤウォールは設定していないとおっしゃってましたが、しっかり効いてますよね。
> 「システム設定」->「セキュリティレベル」で設置画面がでますが、ファイヤウォールが有効になっていて、信頼できるサービスとして上記にでているサービスにチェックマークが入っているはずです。HTTPSは無いでしょうから、一番下の他のポート欄に、「443:tcp」を追加してあげればおしまいでしょう。

おやじ様、ありがとうございます。
SSLが見事動きました^^;

セキュリティーレベルでHTTPSの項目がなかったので
追加しようと思いましたが、それらしき入力場所がありませんでしたので、
とりあえず、ファイアーウォールなしでやってみますと、
なんらくSSLにアクセスできました。

しかし、Xでは443を追加出来ないのですかね・・・。


No.3788 投稿時間:2004年10月16日(Sat) 09:34 投稿者名:おやじ URL:http://http://www.aconus.com/~oyaji/
タイトル:いろいろ設定方法はあります。

下記は参考になりませんか?全て、自分で設定したものです。

http://www.aconus.com/~oyaji/security/iptables.htm

もうひとつの方法は、ファイヤウォールを元に戻して、下記を実行すれば、httpsが登録できます。
2行目でセーブしてますので、忘れずに。これをしないと再起動すると追加した設定が消えてしまいます。

# iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW --dport https -j ACCEPT
# /etc/rc.d/init.d/iptables save


No.3789 投稿時間:2004年10月16日(Sat) 09:57 投稿者名:ガリー URL:
タイトル:Re: いろいろ設定方法はあります。


おやじ様、毎度のレスありがとうございます。
ここまで辿り着けたのも、おやじ様のアドバイスがあったからこそです。

> 下記は参考になりませんか?全て、自分で設定したものです。
>
> http://www.aconus.com/~oyaji/security/iptables.htm
>
> もうひとつの方法は、ファイヤウォールを元に戻して、下記を実行すれば、httpsが登録できます。
> 2行目でセーブしてますので、忘れずに。これをしないと再起動すると追加した設定が消えてしまいます。
>
> # iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW --dport https -j ACCEPT
> # /etc/rc.d/init.d/iptables save

前者のURLでの質問なのですが、
ページで詳しく説明なされていなかったようで、
いまひとつ、理解できないのですが、

まず、そのスクリプトをどこに配置すればよろしいのでしょうか?
findコマンドでサーバ内を探してみたところ、

/etc/rc.d/init.d/iptables
/lib/iptables
/sbin/iptables

この3つが見つかりました。
真ん中は恐らくディレクトリかと思います。

無知で申し訳ございませんが、もう少しお知恵をお貸しください。
よろしくお願いします。


No.3790 投稿時間:2004年10月16日(Sat) 10:33 投稿者名:おやじ URL:http://http://www.aconus.com/~oyaji/
タイトル:適当な名前で適当な場所に置けばいいだけです。

> > 下記は参考になりませんか?全て、自分で設定したものです。
> >
> > http://www.aconus.com/~oyaji/security/iptables.htm
> >
> > もうひとつの方法は、ファイヤウォールを元に戻して、下記を実行すれば、httpsが登録できます。
> > 2行目でセーブしてますので、忘れずに。これをしないと再起動すると追加した設定が消えてしまいます。
> >
> > # iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW --dport https -j ACCEPT
> > # /etc/rc.d/init.d/iptables save
>

 前者でいくなら他サイトを含めて、少し勉強されないと苦労すると思います。一旦全てdenyする方法でやっていますから、下で必要なものは全て開けていかないと繋がりませんので、注意してください。
 時間をかけても大丈夫ならこちらの方がいいと思いますが、取敢えずなら後者のほうがいいと思います。

> 前者のURLでの質問なのですが、
> ページで詳しく説明なされていなかったようで、
> いまひとつ、理解できないのですが、
>
> まず、そのスクリプトをどこに配置すればよろしいのでしょうか?

 確かに、手抜きです。他サイトにあまりにも情報があるので、百番煎じぐらいになってしまいそうなので、時間も無駄なので手を抜いています。

> findコマンドでサーバ内を探してみたところ、
>
> /etc/rc.d/init.d/iptables
> /lib/iptables
> /sbin/iptables

 こういうことではないんです。iptablesはそれ自体がリアルタイムに反映されるコマンドですから、上記ページの一行一行をターミナルで打ち込んでいけば最終的にサーブ、リスタートで有効になります。ただ、何かあるといちいちはじめから全てやり直しになったりするので、スクリプトにして保存しておけば、内容を変更してそのスクリプトを実行すれば、反映されるので便利です。と言うだけのことです。
 つまり、スクリプトの内容を適当な名前(ex. firewall)で、自分が管理しているディレクトリにおいて、実行権を与え(chmod 755 firewall)て、実行してあげればいいだけです。
 リモートでのログイン環境しかない場合は、設定を失敗するとログインできなくなりますので、注意してください。


No.3791 投稿時間:2004年10月16日(Sat) 11:38 投稿者名:ガリー URL:
タイトル:無事、SSLが動作しました。

>  前者でいくなら他サイトを含めて、少し勉強されないと苦労すると思います。一旦全てdenyする方法でやっていますから、下で必要なものは全て開けていかないと繋がりませんので、注意してください。
>  時間をかけても大丈夫ならこちらの方がいいと思いますが、取敢えずなら後者のほうがいいと思います。

確かに、今はとりあえずなんで、後者の方法でやらせていただきます。
今回は、本当にありがとうございました。
おやじ様のお助けがなかったら、ファイアーウォールの件は思いつきませんでしたでしょう。
大変感謝しております。

無事、SSLも動きましたし、今度はメールサーバでも勉強していきたいと思っています。
また、わからない事など躓きましたら、また助言していただけるでしょうか?


では、失礼いたします。



掲示板▲頁先頭