質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.32%

  • CentOS

    2833questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1918questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • SSL

    528questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

サイトをSSL対応させようとしたらapacheが起動しなくなった

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 6,745

shutosg

score 15

お世話になっております。
ウェブサイトをSSL対応させようとしたらapacheが起動しなくなってしまいました。

 環境

CentOS Linux release 7.3.1611 (Core)
Server version: Apache/2.4.6 (CentOS)

 経緯

既存の個人サイトをhttps対応にさせたくて、

などを参考に、Let's Encryptの証明書の発行を行ったのち、 

  • /etc/httpd/conf/httpd.conf
  • /etc/httpd/conf.d/ssl.conf

に証明書ファイルの場所やバーチャルホストの設定を書き加えたのですが、いざapacheを sudo systemctl restart httpd としたところ、起動しなくなってしまいました。

$ sudo systemctl start httpd

Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

設定ファイルのSyntax errorを疑って apachectl configtest としたところ、Syntnax errorで「証明書ファイルが見つからない」と言われたのですが、それは証明書ファイルのあるディレクトリパーミッションが適切ではないことが原因だったようで、それを直して Syntax OK となったのですが、まだ起動しません。

ファイアーウォールの設定も、httpsを許可しています。
ログなどを出してみたものの、ググっても解決せずでした。

 ログなど

$ systemctl status httpd.service

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 土 2017-01-28 03:54:17 JST; 16min ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 1275 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 1167 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 1167 (code=exited, status=1/FAILURE)

 128 03:54:17 150-95-128-75 kill[1275]: kill: cannot find process ""
$ jounralctl -xe


長いので こちら に貼りました。

apacheのログに関しては、最新のところが以下の様に出ております。

# httpd_error_log
[Sat Jan 28 03:02:49.229090 2017] [ssl:emerg] [pid 23700] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:03:21.043074 2017] [ssl:emerg] [pid 23755] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:03:59.848238 2017] [ssl:emerg] [pid 1120] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:04:34.333542 2017] [ssl:emerg] [pid 2719] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:06:14.654515 2017] [ssl:emerg] [pid 2796] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:07:55.335009 2017] [ssl:emerg] [pid 2865] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:09:16.934538 2017] [ssl:emerg] [pid 2940] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:11:41.539592 2017] [ssl:emerg] [pid 3020] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:16:12.647846 2017] [ssl:emerg] [pid 3160] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)
[Sat Jan 28 03:26:53.674303 2017] [ssl:emerg] [pid 3417] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/etc/httpd/conf/httpd.conf:419)

# ssl_error_log
[Sat Jan 28 02:01:15.643699 2017] [ssl:warn] [pid 10363] AH01909: RSA certificate configured for ***:***:***:***:***:***:443 does NOT include an ID which matches the server name
[Sat Jan 28 02:01:15.643699 2017] [ssl:warn] [pid 10363] AH01909: RSA certificate configured for ***:***:***:***:***:***:443 does NOT include an ID which matches the server name

エラーメッセージにでている /etc/httpd/conf/httpd.conf の419行目ですが、以下のようなディレクティブが続いています。

<VirtualHost *:443>
  SSLEngine on
  ServerName my_domain.net
  ServerAlias www.my_domain.net
  DocumentRoot /path/to/my/www/doc/
  CustomLog logs/my_domain-access_log combined
  ErrorLog logs/my_domain-error_log (上述のhttpd_error_logのこと)
</VirtualHost>

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • TaichiYanagiya

    2017/01/28 12:41 編集

    /var/log/httpd/error_log, /var/log/httpd/ssl_error_log に何か起動失敗に関連するログは出ていないでしょうか?

    キャンセル

  • shutosg

    2017/01/28 15:13

    追記いたしました。ご確認お願い致します。

    キャンセル

  • TaichiYanagiya

    2017/01/28 16:54

    ログの情報、ありがとうございます。 /etc/httpd/conf/httpd.conf の 419行目に問題がありそうです。 /etc/httpd/conf/httpd.conf, /etc/httpd/conf.d/ssl.conf の内容を教えてくださいませんでしょうか。

    キャンセル

  • shutosg

    2017/01/28 17:18

    追記いたしました通り、<VirtualHost *:443>ディレクティブです。書く場所が間違っていたかもしれません。。。今見つけた記事(http://qiita.com/HitoshiHaga/items/67378de7f97fbaa6d356

    キャンセル

回答 2

check解決した方法

0

バーチャルホストに関するssl用の設定を誤って /var/www/conf/httpd.conf に記述していた事が原因だったようです。
http://qiita.com/HitoshiHaga/items/67378de7f97fbaa6d356 を参考に、 /etc/httpd/conf.d/ssl.conf 内にssl対応させたいサイトの設定を記述したところ、(未だにhttpsでは繋がらないのですが、)apacheの起動に成功しました。
TaichiYanagiyaさんのヒントからたどり着きました。また、mit0223さんのおかげでopensslコマンドを利用した証明書に関する情報の確認方法も知れたので勉強になりました。
どうもありがとうございました!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

RSA certificate configured for *:*:*:*:*:*:443 does NOT include an ID which matches the server name

証明書とサーバ名が合っていないと言ってます。

Apache の httpd.conf か ssl.conf で ServerName ディレクティブでサーバ名を指定している場合、その名前と証明書の発行対象の名前が一致しているか確認してください。

ServerName ディレクティブでサーバ名を指定していない場合、 Apache は自分のIPアドレスから逆引きするので、一致させるのは面倒です。ServerName ディレクティブで証明書の発行対象の名前を指定してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/28 16:55

    それはそのとおりなのですが、起動しない原因ではないと思います。

    キャンセル

  • 2017/01/28 17:05

    回答ありがとうございます。
    一応ServerNameディレクトリには証明書の発行対象(だと思う)ドメイン名を入力しました。

    Let's Encryptの実行ファイル./certbot-autoに対して

    ```
    ./certbot-auto certonly --webroot \
    -w /var/www/my_www_file -d my_domain.net \
    -w /var/www/my_www_file2 -d hoge.my_domain.net \
    -m my_mail_address@yahoo.co.jp
    ```

    の様にコマンドを打ったので、メインで利用しているmy_domain.netを
    ServerName my_domain.net
    としています。

    キャンセル

  • 2017/01/28 17:17 編集

    なるほど、ということはサーバ証明書がうまくいってないのかもしれません。SSLCertificateFileディレクティブで指定したサーバ証明書のファイルに対して、以下のコマンドを実行し、

    $ openssl x509 -in サーバ証明書のファイル -noout -subject

    出てきた行の CN= の後ろがサーバ名と同じか確認してください。

    キャンセル

  • 2017/01/28 17:26

    ありがとうございます。CN=my_domain.netと表示されました。
    これはServerNameディレクティブに記述しているものと同じです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • CentOS

    2833questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    1918questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • SSL

    528questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。