web-dev-qa-db-ja.com

証明書のX.509 nameConstraintsはOS Xでサポートされていますか?

現在、テストマシンに次の証明書の「チェーン」があります。

  • キーチェーン内の自己署名CA証明書で、Firefoxによって信頼され、信頼されています。
  • 以下を備えたCA証明書、

    X509v3 Name Constraints: critical
      Permitted:
        DNS:mydomain.net
        DNS:.mydomain.net
    
  • 上記で署名された非CA証明書。

テストWebサーバーは、後者の2つの証明書を提供します。 1つ目は、OS Xのキーチェーン、Firefox自体、およびLinux側で、FFとcertutilによって「信頼できる」とマークされています。

OS Xでは、Firefoxは接続をセキュアとして受け入れます。 ChromeとSafariはそうではありません。Chromeのように見えます&SafariはOSが暗号化の目的で使用するものをすべて使用するため、OS Xが問題です。表示証明書は示しています:

"This certificate cannot be used (unrecognized critical extension)"

Extension: Name Constraints (2.5.29.30)
 Critical: YES
     Data: <a sequence of octets>

オクテットのシーケンスが表示されているので、私は推測していますnotニースのデコードされたビュー(他の拡張機能で行うように)、これがエラーの原因となっている拡張機能です。

LinuxでもChrome=(FFで正常に動作します)で動作させることはできませんが、ルート証明書を見つけることができないようです(ただし、 OS Xではできます);これは、自己署名証明書を受け入れる方法がわからないためだと思います(インターネットはcertutilと言っており、そのほぼすべての組み合わせを試してみました役に立つ。)

12
Thanatos

いいえ。Appleはこれをサポートしていません。

Appleの Secure Transport ライブラリはX.509の nameConstraints をサポートしていません。

これについては、Chromiumのバグデータベースにバグがあります。そして、それはWontFixとして閉じられました。開発者 Ryan Sleeviが2014年8月25日にこれを述べた (アーカイブ ここ ):

Chromeは、検証のためにOS暗号スタックを使用します。

Appleは名前の制約を実装していません。これはOS XのSSLまたは証明書検証ライブラリ(Safari、Curl、Pythonなど)を使用するすべてのアプリケーションに適用されます。 )

関連した

6
StackzOfZtuff