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

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

ただいまの
回答率

90.33%

  • nginx

    904questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Nginx+KUSANAGI+Let's EncryptでATSの要件を満たす

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 709

tabemikako

score 57

以下の質問をした者です。

Nginx+KUSANAGI+Let's EncryptのWordPressでiOS端末からSSLエラー

ConoHaのVPS(CentOS)に、KUSANAGIを使ってWordPressを構築しました。
WebサーバーはNginxで、Let's EncryptでSSL化してあります。

iOSの端末からアクセスした場合に、

An SSL error has occurred and a secure connection to the server cannot be made.

というようなエラーが出ます。

先の質問では、「ATSの要件を満たすように調整するとエラー解消できそう」との回答をいただきましたが、Nginxのssl_protocolsやssl_ciphersを調整してみましたが、iOS端末で表示させることができませんでした。

具体的に、Nginxの何をどのように調整すれば、iOSのATS要件を満足させることができるでしょうか?

よろしくお願いします。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

前回のte2ji様の回答でリンク先にあったテストツールの結果はどうだったのでしょうか?とりあえず、このテストツールに自分のホスト名をいれてみて、その結果をここに記載されている条件と照合して、全部満足していたのでしょうか?

具体的に、Nginxの何をどのように調整すれば、iOSのATS要件を満足させることができるでしょうか?

上記サイトからのコピペですが1個ずつチェックしてみましょう。

TLSのバージョン
TLS 1.2以上

テストツールの結果の Configuration の protocol のところで TLS 1.2 のみが yes になっていて、それ以外が no になっていればOKです。

暗号スイート
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

テストツールの結果の Configuration の Cipher Suites のところで、上記のアルゴリズムだけが表示されていれば、OKです。上記以外のアルゴリズムが表示されていると、そのアルゴリズムも使えるということになるので、NG だと思います。

これらの2つがNGの場合は、nginx のパラメータを調整すれば解消できると思います。具体的には、Webサーバー nginx における SSL証明書設定の安全性向上 ~SSL Server Test で A+ 判定を目指して~などを参考に設定されてはいかがでしょうか。

あとは、サーバ証明書の方の適合条件になります。

サーバ証明書
OSに組み込まれている認証局によって発行された証明書
信頼されたルートCAによって発行されて、ユーザやシステム管理者によってインストールされた証明書

テストツールの結果のCertificate の Certification Paths を展開(右肩の+ボタンを押して)して、すべてのパスで In trust store となっていればOKだと思います。

サーバ証明書の署名する際のキー
2048bit以上のRSAキー
256bit以上の楕円曲線暗号キー(ECCキー)

テストツールの結果のCertificate の Keyが上記のいずれかであればOKです。たとえば、RSA 2048 bits となっていればOKです。

サーバ証明書のハッシュアルゴリズム
256bit以上のダイジェスト長であるSHA-2(つまり、SHA-256以上)

テストツールの結果のCertificate の Signature algorithm が上記の条件を満たしていればOKです。たとえば、SHA256withRSA となっていればOKです。ただし、ルート証明書も SHA2 でないとだめだとすると、 かなり厳しいです。
おそらく、ルート証明書のSHA1は許容されると思います。そうでないと、ほとんどのサーバ証明書ベンダが合格しないことになってしまいそうです。

サーバ証明書がこれらの条件に合致していない場合は、サーバ証明書を買い直すしかありません。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/03/05 09:07

    詳しい回答、ありがとうございます!具体的な確認項目がわかって、参考になりました。

    キャンセル

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

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

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

  • nginx

    904questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。