SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
SSL証明書とApache運用
 ~ちょっと気をつけるだけでトラブル防止~



サーバ運用超入門勉強会

            Copyright Digital-Effect Network Co., Ltd. All rights reserved.
アジェンダ


       お話する内容

       • httpはOKでも、httpsはNG

       • SSL証明書の更新で失敗

       • パスフレーズ確認
         OS起動時 CentOS5と6の違い?



2012/12/21         -1-   Copyright Digital-Effect Network Co., Ltd. All rights reserved.
httpはOKでも、httpsはNG


       httpはOKでも、httpsはNG
       •     Linuxをインストール
              ↓
       •     Apacheをインストール
              ↓
       •     Webコンテンツをアップロード
             –   サイトが見れたので、問題なしと判断。
             –   Apacheを再起動してみても問題なく再起動できる。
              ↓
       •     SSL証明書を設置
             –   SSLを使いたいので、mod_sslモジュールをインストール
              ↓
       •     Apache再起動
              ↓

      # /etc/init.d/httpd restart
2012/12/21                       -2-      Copyright Digital-Effect Network Co., Ltd. All rights reserved.
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.
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.
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.
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.
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.
証明書の更新で失敗


       証明書の更新で失敗
       •     Goolgle検索
              ↓
       •     コマンドをそのままコピペで実行(諸々の作業をopensslコマンドで実行)
              ↓
       •     証明書の設置完了!
              ↓
              ↓ 時は流れて、証明書の更新時期が。
              ↓
       •     Google検索
              ↓
       •     証明書のファイルを置き換え(中身を書き換え)
              ↓
       •     Apache再起動で更新完了!
              ↓

      # /etc/init.d/httpd restart
2012/12/21                  -8-   Copyright Digital-Effect Network Co., Ltd. All rights reserved.
証明書の更新で失敗
       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.
証明書の更新で失敗


       対策
       [パスフレーズの削除]
       秘密鍵ファイルを直接見てみます。
      -----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.
証明書の更新で失敗
      やってみます。
      # 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.
証明書の更新で失敗

       パスフレーズが入っていると困ること
       例) 急なトラブルでOSそのものを再起動しなければいけないとき

             自宅から、データセンターにあるサーバ自体を再起動した。
              ↓
             パスフレーズの入力待ちで、サーバ起動処理自体が途中で停止。
              ↓
             気づかず、長時間のサイト停止!


   こういう場合は、リモートからサーバへログインして手動でApacheを起動させます。

   ※SSHの起動順序がApacheの起動よりも後になるように変えていた場合、Apacheのパスフ
     レーズ待ちでOSの起動処理が停止するので、リモートログインできなくなります。
     この場合、サーバに直接モニターをつなぎ、パスフレーズを入力して起動処理を進めないと
     いけなくなります。




2012/12/21            - 12 -   Copyright Digital-Effect Network Co., Ltd. All rights reserved.
CentOS5/6の違いってある?
       実際の画面 (CentOS5の場合)




   OS起動時の画面。
   Apache起動時に、SSL証明書(ssl.example.com)のパスフレーズを聞いてきています。
   ここで、パスフレーズを入力すると、OS起動処理が進みます。

2012/12/21                  - 13 -   Copyright Digital-Effect Network Co., Ltd. All rights reserved.
CentOS5/6の違いってある?
       実際の画面 (CentOS6の場合)

       デフォルトの場合、起動画面は白いプログレスバーが伸びていくアニメーションに
       なっています。




       SSLのパスフレーズがかかっていると、どうなるでしょうか?
       このように、起動が完了したように見えても、ログインプロンプトが出て来ません。




       通常は、OSの起動が完了すると、以下のようにログインプロンプトが出てきます。




       ※「Esc」キーで、以前のようなブートプロセス表示とプログレスバー表示の交互に切り替えることができます。

2012/12/21                  - 14 -   Copyright Digital-Effect Network Co., Ltd. All rights reserved.
CentOS5/6の違いってある?
       実際の画面 (CentOS6の場合)

       パスフレーズの入力を促すような表示はありませんが、この状態でもパスフレーズの
       入力待ちなので、このまま入力すると、処理が進みます。




       以前のように、起動シーケンスが見えるようにするには、「grub.conf」を編集します。
       (grub.confから「rhgb quiet」を削除するだけです。詳細は割愛。)




2012/12/21                  - 15 -   Copyright Digital-Effect Network Co., Ltd. All rights reserved.
ご清聴ありがとうございました。




広告スペース
                          設計から運用まで、
                          安全・安心ホスティング
                        単体サーバから複数台構成まで幅広く対応致します。

      証明書取得、設置~更新代行まで承ります。
2012/12/21     - 16 -      Copyright Digital-Effect Network Co., Ltd. All rights reserved.

Weitere ähnliche Inhalte

Was ist angesagt?

OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてShinya Yamaguchi
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズオラクルエンジニア通信
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTT DATA OSS Professional Services
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法CASAREAL, Inc.
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本kazuki kumagai
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...NTT DATA Technology & Innovation
 
Azure DevOpsとセキュリティ
Azure DevOpsとセキュリティAzure DevOpsとセキュリティ
Azure DevOpsとセキュリティKazushi Kamegawa
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)NTT DATA Technology & Innovation
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~Ryota Watabe
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 

Was ist angesagt? (20)

OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
 
DevOps with Database on AWS
DevOps with Database on AWSDevOps with Database on AWS
DevOps with Database on AWS
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
[フルバージョン] WebLogic Server for OCI 活用のご提案 - TCO削減とシステムのモダナイズ
 
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushiGoogle Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushi
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
 
Azure DevOpsとセキュリティ
Azure DevOpsとセキュリティAzure DevOpsとセキュリティ
Azure DevOpsとセキュリティ
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 

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

Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみたYoshinori Teraoka
 
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話Takashi Uemura
 
Azure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果wwwAzure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果wwwMasahito Zembutsu
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
 
Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03博康 三井
 
Aws cent os7_wordpress_2
Aws cent os7_wordpress_2Aws cent os7_wordpress_2
Aws cent os7_wordpress_2Naoyuki Sano
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境yut148atgmaildotcom
 
超簡単!Subversion入門 準備編
超簡単!Subversion入門 準備編超簡単!Subversion入門 準備編
超簡単!Subversion入門 準備編Shin Tanigawa
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Masahito Zembutsu
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみようMasahiko Hashimoto
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介Midori Oge
 
SANsymphony-Vを使ったSoftLayerへの簡単データ移行
SANsymphony-Vを使ったSoftLayerへの簡単データ移行SANsymphony-Vを使ったSoftLayerへの簡単データ移行
SANsymphony-Vを使ったSoftLayerへの簡単データ移行Hironori Tanaka
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことTrinityT _
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-賢 秋穂
 
webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法
webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法
webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法hiroya
 
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemoytanno
 

Ähnlich wie Ssl証明書を設定したらapacheが起動しない? (20)

Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみた
 
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
 
Azure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果wwwAzure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果www
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
Azure de debian
Azure de debianAzure de debian
Azure de debian
 
Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03
 
Aws cent os7_wordpress_2
Aws cent os7_wordpress_2Aws cent os7_wordpress_2
Aws cent os7_wordpress_2
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
超簡単!Subversion入門 準備編
超簡単!Subversion入門 準備編超簡単!Subversion入門 準備編
超簡単!Subversion入門 準備編
 
20121205 jjbug
20121205 jjbug20121205 jjbug
20121205 jjbug
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19Docker hands on nifty sakura jul19
Docker hands on nifty sakura jul19
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
SANsymphony-Vを使ったSoftLayerへの簡単データ移行
SANsymphony-Vを使ったSoftLayerへの簡単データ移行SANsymphony-Vを使ったSoftLayerへの簡単データ移行
SANsymphony-Vを使ったSoftLayerへの簡単データ移行
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
 
webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法
webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法
webstart-maven-pugin + 無償で正統?なコード署名証明書を入手する方法
 
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemo
 

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

  • 2. アジェンダ お話する内容 • httpはOKでも、httpsはNG • SSL証明書の更新で失敗 • パスフレーズ確認 OS起動時 CentOS5と6の違い? 2012/12/21 -1- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  • 3. httpはOKでも、httpsはNG httpはOKでも、httpsはNG • Linuxをインストール ↓ • Apacheをインストール ↓ • Webコンテンツをアップロード – サイトが見れたので、問題なしと判断。 – Apacheを再起動してみても問題なく再起動できる。 ↓ • SSL証明書を設置 – SSLを使いたいので、mod_sslモジュールをインストール ↓ • Apache再起動 ↓ # /etc/init.d/httpd restart 2012/12/21 -2- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  • 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. 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. 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. 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. 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. 証明書の更新で失敗 証明書の更新で失敗 • Goolgle検索 ↓ • コマンドをそのままコピペで実行(諸々の作業をopensslコマンドで実行) ↓ • 証明書の設置完了! ↓ ↓ 時は流れて、証明書の更新時期が。 ↓ • Google検索 ↓ • 証明書のファイルを置き換え(中身を書き換え) ↓ • Apache再起動で更新完了! ↓ # /etc/init.d/httpd restart 2012/12/21 -8- Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  • 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. 証明書の更新で失敗 対策 [パスフレーズの削除] 秘密鍵ファイルを直接見てみます。 -----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. 証明書の更新で失敗 やってみます。 # 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. 証明書の更新で失敗 パスフレーズが入っていると困ること 例) 急なトラブルでOSそのものを再起動しなければいけないとき 自宅から、データセンターにあるサーバ自体を再起動した。 ↓ パスフレーズの入力待ちで、サーバ起動処理自体が途中で停止。 ↓ 気づかず、長時間のサイト停止! こういう場合は、リモートからサーバへログインして手動でApacheを起動させます。 ※SSHの起動順序がApacheの起動よりも後になるように変えていた場合、Apacheのパスフ レーズ待ちでOSの起動処理が停止するので、リモートログインできなくなります。 この場合、サーバに直接モニターをつなぎ、パスフレーズを入力して起動処理を進めないと いけなくなります。 2012/12/21 - 12 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  • 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. CentOS5/6の違いってある? 実際の画面 (CentOS6の場合) デフォルトの場合、起動画面は白いプログレスバーが伸びていくアニメーションに なっています。 SSLのパスフレーズがかかっていると、どうなるでしょうか? このように、起動が完了したように見えても、ログインプロンプトが出て来ません。 通常は、OSの起動が完了すると、以下のようにログインプロンプトが出てきます。 ※「Esc」キーで、以前のようなブートプロセス表示とプログレスバー表示の交互に切り替えることができます。 2012/12/21 - 14 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  • 16. CentOS5/6の違いってある? 実際の画面 (CentOS6の場合) パスフレーズの入力を促すような表示はありませんが、この状態でもパスフレーズの 入力待ちなので、このまま入力すると、処理が進みます。 以前のように、起動シーケンスが見えるようにするには、「grub.conf」を編集します。 (grub.confから「rhgb quiet」を削除するだけです。詳細は割愛。) 2012/12/21 - 15 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.
  • 17. ご清聴ありがとうございました。 広告スペース 設計から運用まで、 安全・安心ホスティング 単体サーバから複数台構成まで幅広く対応致します。 証明書取得、設置~更新代行まで承ります。 2012/12/21 - 16 - Copyright Digital-Effect Network Co., Ltd. All rights reserved.