Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SSL証明書とApache運用 ~ちょっと気をつけるだけでトラブル防止~サーバ運用超入門勉強会            Copyright Digital-Effect Network Co., Ltd. All rights reserved.
アジェンダ       お話する内容       • httpはOKでも、httpsはNG       • SSL証明書の更新で失敗       • パスフレーズ確認         OS起動時 CentOS5と6の違い?2012/12/21 ...
httpはOKでも、httpsはNG       httpはOKでも、httpsはNG       •     Linuxをインストール              ↓       •     Apacheをインストール             ...
httpはOKでも、httpsはNG      httpd を起動中: Syntax error on line 114 of /etc/httpd/conf.d/ssl.conf:      SSLCertificateFile: file ...
httpはOKでも、httpsはNG       原因は?       SELinuxが邪魔をしています。      Nov 2 15:56:30 www1 kernel: type=1400 audit(1351839390.871:6): ...
httpはOKでも、httpsはNG       許可するには?      allow httpd_t user_home_t:dir search;       という許可をポリシーに追加すればいいですが、都度書くのは面倒。       それ...
httpはOKでも、httpsはNG                                       これでアクセス制御はしなくなりますが、動作は       対策                              し続けて...
httpはOKでも、httpsはNG       対策       [SELinuxの完全停止]       完全にSELinuxを停止させたい場合       「/etc/sysconfig/selinux」という設定ファイルを変更します。 ...
証明書の更新で失敗       証明書の更新で失敗       •     Goolgle検索              ↓       •     コマンドをそのままコピペで実行(諸々の作業をopensslコマンドで実行)          ...
証明書の更新で失敗       httpd を停止中:                          [ OK ]       httpd を起動中: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dial...
証明書の更新で失敗       対策       [パスフレーズの削除]       秘密鍵ファイルを直接見てみます。      -----BEGIN RSA PRIVATE KEY-----      Proc-Type: 4,ENCRYPT...
証明書の更新で失敗      やってみます。      # openssl rsa -in server.key -out server.key       「server.key」ファイルの中身を見てみます。      -----BEGIN ...
証明書の更新で失敗       パスフレーズが入っていると困ること       例) 急なトラブルでOSそのものを再起動しなければいけないとき             自宅から、データセンターにあるサーバ自体を再起動した。           ...
CentOS5/6の違いってある?       実際の画面 (CentOS5の場合)   OS起動時の画面。   Apache起動時に、SSL証明書(ssl.example.com)のパスフレーズを聞いてきています。   ここで、パスフレーズを...
CentOS5/6の違いってある?       実際の画面 (CentOS6の場合)       デフォルトの場合、起動画面は白いプログレスバーが伸びていくアニメーションに       なっています。       SSLのパスフレーズがかかって...
CentOS5/6の違いってある?       実際の画面 (CentOS6の場合)       パスフレーズの入力を促すような表示はありませんが、この状態でもパスフレーズの       入力待ちなので、このまま入力すると、処理が進みます。  ...
ご清聴ありがとうございました。広告スペース                          設計から運用まで、                          安全・安心ホスティング                        単体サーバ...
Upcoming SlideShare
Loading in …5
×

Ssl証明書を設定したらapacheが起動しない?

15,730 views

Published on

  • Be the first to comment

Ssl証明書を設定したらapacheが起動しない?

  1. 1. SSL証明書とApache運用 ~ちょっと気をつけるだけでトラブル防止~サーバ運用超入門勉強会 Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  2. 2. アジェンダ お話する内容 • httpはOKでも、httpsはNG • SSL証明書の更新で失敗 • パスフレーズ確認 OS起動時 CentOS5と6の違い?2012/12/21 -1- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  3. 3. httpはOKでも、httpsはNG httpはOKでも、httpsはNG • Linuxをインストール ↓ • Apacheをインストール ↓ • Webコンテンツをアップロード – サイトが見れたので、問題なしと判断。 – Apacheを再起動してみても問題なく再起動できる。 ↓ • SSL証明書を設置 – SSLを使いたいので、mod_sslモジュールをインストール ↓ • Apache再起動 ↓ # /etc/init.d/httpd restart2012/12/21 -2- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  4. 4. httpはOKでも、httpsはNG httpd を起動中: Syntax error on line 114 of /etc/httpd/conf.d/ssl.conf: SSLCertificateFile: file /root/ssl/server.crt does not exist or is empty [失敗] 「 file /root/ssl/server.crt does not exist or is empty 」 証明書がない・・・? • 証明書(server.crt)は、確かに指定の場所に存在する。 • ファイル名も間違っていない。 • ファイルのパーミッションも間違っていない。 →エラーメッセージの意味が分からないよ。。。 でも、サイト停止した状態だよ。 なんとかしないと。2012/12/21 -3- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  5. 5. httpはOKでも、httpsはNG 原因は? SELinuxが邪魔をしています。 Nov 2 15:56:30 www1 kernel: type=1400 audit(1351839390.871:6): avc: denied { search } for pid=1592 comm="httpd" name="ssl" dev=vda3 ino=545136 scontext=system_u:system_r:httpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=dir (※/var/log/messagesより抜粋) CentOS5以降の場合、意図的に停止しない限り、SELinuxが有効になっています。 (Version4までは、OSインストール時にSELinuxの有効/無効を指定できます) 今回は「httpdが、新たにインストールされたmod_sslにアクセスしようとした際、 SELinuxのアクセス制御機能によって拒否された」ということが原因です。2012/12/21 -4- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  6. 6. httpはOKでも、httpsはNG 許可するには? allow httpd_t user_home_t:dir search; という許可をポリシーに追加すればいいですが、都度書くのは面倒。 それ以前に、SELinux難しい・・・。 こんなこと益々やってらんない!! 既に絶版・・・2012/12/21 -5- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  7. 7. httpはOKでも、httpsはNG これでアクセス制御はしなくなりますが、動作は 対策 し続けているので、若干サーバのパフォーマン スが下がります。 完全に停止させておいた方がよいでしょう。 [SELinuxのアクセス制御停止] サーバを停止させずにSELinuxの機能を切りたい場合 確認方法 # getenforce Enforcing ←SELinuxのアクセス制御が有効になっています。 変更方法 # setenforce 0 ←「0」で「Permissive」モードに変更します。 # getenforce ←設定が変わったかどうか確認します。 Permissive ←確かに変わりました。 Permissiveモードは、アクセス制御機能は停止していますが、SELinux自体は各種アクセ スを監視し、情報をログに出力しています。2012/12/21 -6- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  8. 8. httpはOKでも、httpsはNG 対策 [SELinuxの完全停止] 完全にSELinuxを停止させたい場合 「/etc/sysconfig/selinux」という設定ファイルを変更します。 SELINUX=enforcing ↓ SELINUX=disabled 設定を反映させる為、サーバを再起動します。 サーバ起動後 # getenforce Disabled ←SELinuxのアクセス制御が完全に停止しています。2012/12/21 -7- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  9. 9. 証明書の更新で失敗 証明書の更新で失敗 • Goolgle検索 ↓ • コマンドをそのままコピペで実行(諸々の作業をopensslコマンドで実行) ↓ • 証明書の設置完了! ↓ ↓ 時は流れて、証明書の更新時期が。 ↓ • Google検索 ↓ • 証明書のファイルを置き換え(中身を書き換え) ↓ • Apache再起動で更新完了! ↓ # /etc/init.d/httpd restart2012/12/21 -8- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  10. 10. 証明書の更新で失敗 httpd を停止中: [ OK ] httpd を起動中: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog) Enter pass phrase: パスワード入力待ち パスフレーズを入力するまで、Apacheは起動できません。 パスフレーズを思い出せなかったり、メモ書きが行方不明の場合は、、、 Web閲覧できない障害になります!!2012/12/21 -9- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  11. 11. 証明書の更新で失敗 対策 [パスフレーズの削除] 秘密鍵ファイルを直接見てみます。 -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,8F3BC65766447343B453530E499C9F11 +lSpfYi0jWe9zcd3kOVJ4F… (以下略) パスフレーズがかかっていると、ENCRYPTEDという文字列が入ります。 パスフレーズの解除 openssl rsa -in [鍵ファイル] -out [鍵ファイル] -inで指定した鍵ファイルを読み込み、-outで指定したファイルに書き込む形になります。 上記で、入出力共に同じファイルを指定する場合、最初に作成した鍵ファイルが上書きされます。 上書きを避けるには、別のファイル名を指定してください。 ※上書きする場合は、元のファイルのバックアップは必ずとっておきましょう!2012/12/21 - 10 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  12. 12. 証明書の更新で失敗 やってみます。 # openssl rsa -in server.key -out server.key 「server.key」ファイルの中身を見てみます。 -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCfvnag0XZs1gGkVe8BQP5GaaA (以下略)] 「ENCRYPTED」という記述がなくなり、パスフレーズが外れました。2012/12/21 - 11 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  13. 13. 証明書の更新で失敗 パスフレーズが入っていると困ること 例) 急なトラブルでOSそのものを再起動しなければいけないとき 自宅から、データセンターにあるサーバ自体を再起動した。 ↓ パスフレーズの入力待ちで、サーバ起動処理自体が途中で停止。 ↓ 気づかず、長時間のサイト停止! こういう場合は、リモートからサーバへログインして手動でApacheを起動させます。 ※SSHの起動順序がApacheの起動よりも後になるように変えていた場合、Apacheのパスフ レーズ待ちでOSの起動処理が停止するので、リモートログインできなくなります。 この場合、サーバに直接モニターをつなぎ、パスフレーズを入力して起動処理を進めないと いけなくなります。2012/12/21 - 12 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  14. 14. CentOS5/6の違いってある? 実際の画面 (CentOS5の場合) OS起動時の画面。 Apache起動時に、SSL証明書(ssl.example.com)のパスフレーズを聞いてきています。 ここで、パスフレーズを入力すると、OS起動処理が進みます。2012/12/21 - 13 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  15. 15. CentOS5/6の違いってある? 実際の画面 (CentOS6の場合) デフォルトの場合、起動画面は白いプログレスバーが伸びていくアニメーションに なっています。 SSLのパスフレーズがかかっていると、どうなるでしょうか? このように、起動が完了したように見えても、ログインプロンプトが出て来ません。 通常は、OSの起動が完了すると、以下のようにログインプロンプトが出てきます。 ※「Esc」キーで、以前のようなブートプロセス表示とプログレスバー表示の交互に切り替えることができます。2012/12/21 - 14 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  16. 16. CentOS5/6の違いってある? 実際の画面 (CentOS6の場合) パスフレーズの入力を促すような表示はありませんが、この状態でもパスフレーズの 入力待ちなので、このまま入力すると、処理が進みます。 以前のように、起動シーケンスが見えるようにするには、「grub.conf」を編集します。 (grub.confから「rhgb quiet」を削除するだけです。詳細は割愛。)2012/12/21 - 15 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  17. 17. ご清聴ありがとうございました。広告スペース 設計から運用まで、 安全・安心ホスティング 単体サーバから複数台構成まで幅広く対応致します。 証明書取得、設置~更新代行まで承ります。2012/12/21 - 16 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.

×