• 締切済み

[【Apache】apachectl stop,,sslstartだとパスフレーズを聞かれるのにapachectl restartだと聞かれない

CentOS4.4、Apache/2.0.63 mod_ssl/2.0.63 でApacheを運用しています。 なお、レンタルサーバのVPSでやってます。 なお、SSLの認証局は、ベリサインなどではなく、いわゆる「オレオレ認証」というか、自分のサーバを認証局にしています で、いつも、apacheを再起動するとき、 [root@www ~]$ apachectl stop [root@www ~]$ apachectl startssl Apache/2.0.63 mod_ssl/2.0.63 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases. Server example.com:443 (RSA) Enter pass phrase: OK: Pass Phrase Dialog successful. [root@www ~]$ というように、「pass phrase」をきかれます。 これは、これでOKというか、こうあるべきなのですが・・・・ 「apachectl restart」 とやってみたら、 [root@www ~]$ apachectl restart [root@www ~]$ というように、「pass phrase」をきかれずに、再起動してしまいました。で、SSLも有効になっています。 これだとセキュリテイ的にまずいので、この状態を回避したいのですが、どうすればいいでしょうか? よろしくお願いいたします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ごめんなさSSL関連はほぼ素人同然なので、無難なところだけ・・・ 前回も書きましたが、apachectlはシェルスクリプトなので 手でなおしてください。 restartのところをコメントアウトして、 stopしてからstartするような仕組みにかえるだけでよいでしょう。 >これらのプロセスのUSERが503という変な?ものになっている apacheの実行権限はセキュリティ上rootではおこなわず httpd.confにおけるUserおよびGroupで指定したユーザーでの 実行になります。 これは万が一未知のセキュリティホールでデーモンがのっとられたときに root権限をとられないようにするための方策で、他のメインどころの デーモンはみな同じような仕組みを採用しているはずです。 >OSを再起動するとApacheは自動では再起動しません 自動起動する処理もあるようですよ。 apache ssl 自動起動 あたりで検索してみてはいかがでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

apachectl自体単なるシェルスクリプトですから restartの項目をはずすか、書き換えてしまえばよいのでは? ただセキュリティ的にまずい・・・というのがよくわかりません。 SSL有効で再起動されるならセキュリティ的にあまりまずくもない ように思えます。 ぎゃくに誰でも任意に起動・終了・再起動ができるのであれば SSL以前にまずいので、ユーザー権限をみなおすべきでしょう。

daisuke_dm
質問者

お礼

ご回答ありがとうございます。 >ただセキュリティ的にまずい・・・というのがよくわかりません 趣味的に・・・ちょっと追求してみようかと思いまして^^; >ぎゃくに誰でも任意に起動・終了・再起動ができるのであれば さすがにこれはない…と思ってたら、ugo全てに実行権限がついてました レンタルサーバのデフォルトなんですが…これって特殊ですよね?VPSだからなのかな? >apachectl自体単なるシェルスクリプトですから >restartの項目をはずすか、書き換えてしまえばよいのでは? これに関連して、追加の状況説明をさせてください (1ー1) 「apachectl restart」⇒パスフレーズを聞かれずに再起動し、SSLも有効 は、最初の質問で述べましたが、 これは、apacheが起動しているときだけでした     apacheが起動していないときに「apachectl restart」を行うと、パスフレーズを聞かれます (1-2) (1ー1)で述べたように、apacheが起動していないときに「apachectl restart」を行うと、パスフレーズを聞かれますが、 これでapache起動に成功しても・・・     ●以下のように、「-DSSL」がつかずに実行されています              [root@www conf]$ ps aux | grep httpd         root   32639 8.5 0.9 20284 7096 ?    Ss  23:28  0:00 /usr/sbin/httpd -k restart         503   32640 0.0 0.4 20284 3500 ?    S  23:28  0:00 /usr/sbin/httpd -k restart         root   32648 0.0 0.0 2848 484 pts/0  S+  23:28  0:00 grep httpd         [root@www conf]$     ●でも、「-DSSL」がついてないのに、httpsでアクセスすると正常に表示されます なぜでしょうか?お教えいただければ幸いです。 以下、長いので、補足へ続きます。。。

daisuke_dm
質問者

補足

(2) [root@www conf]$ ps aux | grep httpd root   6113 2.4 0.9 21300 7096 ?    Ss  23:34  0:00 /usr/sbin/httpd -DSSL -k start 503    6114 0.0 0.5 21452 4616 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start 503    6118 0.0 0.5 21300 4028 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start 503    6121 0.0 0.4 21300 3500 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start 503    6122 0.0 0.4 21300 3492 ?    S  23:34  0:00 /usr/sbin/httpd -DSSL -k start root   6142 0.0 0.0 2936 484 pts/0  S+  23:34  0:00 grep httpd [root@www conf]$ apachectl stop [root@www conf]$ apachectl sslstart Apache/2.0.63 mod_ssl/2.0.63 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases. Server example.com:443 (RSA) Enter pass phrase: OK: Pass Phrase Dialog successful. [root@www conf]$ ps aux | grep httpd root   7735 2.6 0.9 20416 7096 ?    Ss  23:35  0:00 /usr/sbin/httpd -DSSL -k start 503    7736 0.0 0.5 20568 4616 ?    S  23:35  0:00 /usr/sbin/httpd -DSSL -k start 503    7737 0.0 0.5 20416 4028 ?    S  23:35  0:00 /usr/sbin/httpd -DSSL -k start 503    7738 0.0 0.4 20416 3500 ?    S  23:35  0:00 /usr/sbin/httpd -DSSL -k start root   7742 0.0 0.0 2744 484 pts/0  S+  23:35  0:00 grep httpd [root@www conf]$ apachectl restart [root@www conf]$ ps aux | grep httpd root   7735 0.2 0.9 20416 7776 ?    Ss  23:35  0:00 /usr/sbin/httpd -DSSL -k start 503    9574 0.0 0.4 20416 3528 ?    S  23:37  0:00 /usr/sbin/httpd -DSSL -k start root   9587 0.0 0.0 2832 484 pts/0  S+  23:37  0:00 grep httpd [root@www conf]$ のように、 ⇒apachectl sslstart だと親プロセスも子プロセスも両方ともすべてリセットされている ⇒apachectl restart だと親プロセスはリセットされない。子プロセスだけがすべてリセットされている といった状況です この(1)と(2)の挙動は、いったいどうなっているのでしょうか? お教えいただければ幸いです --- なお、さらに【追加質問】させてください (A) [root@www conf]$ ps aux | grep httpd root   22233 0.0 0.9 20456 7764 ?    Ss  22:08  0:00 /usr/sbin/httpd -DSSL -k start 503   25851 0.0 0.5 20592 4716 ?    S  22:11  0:00 /usr/sbin/httpd -DSSL -k start 503   25879 0.0 0.6 20592 4732 ?    S  22:11  0:00 /usr/sbin/httpd -DSSL -k start root   13681 0.0 0.0 2456 484 pts/0  S+  22:31  0:00 grep httpd [root@www conf]$ において、 ●なぜこれらのプロセスのUSERが503という変な?ものになっているのでしょうか? (B) 認証鍵をつくるまえは、OSを再起動するとApacheも自動で再起動するようになっていました ですが、認証鍵をつくったあとは、OSを再起動するとApacheは自動では再起動しません これを改善するにはどうすればいいのでしょうか? 以上、よろしくお願いいたします。