SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Datadog による Container の監視について
Datadog による Container の監視についてDatadog による Container の監視について
Datadog による Container の監視についてMasaya Aoyama
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要Amazon Web Services Japan
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれからksk_ha
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)VirtualTech Japan Inc.
 
エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩Takuya Tezuka
 
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)Snowflake Architecture and Performance(db tech showcase Tokyo 2018)
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)Mineaki Motohashi
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!Hirotaka Sato
 
Githubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみようGithubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみようShingo Omura
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...ksk_ha
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤Yu Otsubo
 
もう怖くない。実例で学ぶAwsでのサイジングと料金計算
もう怖くない。実例で学ぶAwsでのサイジングと料金計算もう怖くない。実例で学ぶAwsでのサイジングと料金計算
もう怖くない。実例で学ぶAwsでのサイジングと料金計算Takuya Tachibana
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンseiichi arai
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)NTT DATA Technology & Innovation
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことKeisuke Nishitani
 
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...NTT DATA Technology & Innovation
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るTakeru Maehara
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続Amazon Web Services Japan
 
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編株式会社 NTTテクノクロス
 

Tendances (20)

Datadog による Container の監視について
Datadog による Container の監視についてDatadog による Container の監視について
Datadog による Container の監視について
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 
エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩エンジニア必見!Sreへの第一歩
エンジニア必見!Sreへの第一歩
 
各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
 
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)Snowflake Architecture and Performance(db tech showcase Tokyo 2018)
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 
Githubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみようGithubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみよう
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
 
もう怖くない。実例で学ぶAwsでのサイジングと料金計算
もう怖くない。実例で学ぶAwsでのサイジングと料金計算もう怖くない。実例で学ぶAwsでのサイジングと料金計算
もう怖くない。実例で学ぶAwsでのサイジングと料金計算
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
 
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
 

Similaire à 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
 

Similaire à 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.