このドキュメントで説明されているソフトウェアはサポートされていないか、拡張サポートが提供されています。
現在サポートされているリリースにアップグレードすることをお薦めします。

1.8.5 SSLセキュリティ警告: Certificate has no subjectAltName (証明書にsubjectAltNameがありません)

Ceph Object Gatewayインスタンスを構成してSSLを有効にする場合は、SSL証明書を作成する必要があります。 証明書でv3拡張機能が有効化されておらず、証明書にsubjectAltNameが設定されていない場合、Swiftクライアントなどのクライアントがゲートウェイへのアクセスを試行すると、警告メッセージが表示されます。

/usr/lib/python2.7/site-packages/urllib3/connection.py:251: SecurityWarning:
Certificate has no `subjectAltName`, falling back to check for a `commonName`
for now. This feature is being removed by major browsers and deprecated by
RFC 2818. (See https://github.com/shazow/urllib3/issues/497 for details.)

タイプdNSNamesubjectAltName拡張機能がある場合は、それがアイデンティティとして使用されます。 それ以外は、証明書のSubjectフィールドのCommon Nameフィールドが使用されます。 共通名の使用は既存の方法ですが、これは非推奨であり、認証局ではdNSNameをかわりに使用することが推奨されています。

警告がまったく表示されないようにするには、次を実行します。

  1. 鍵と証明書を生成する作業ディレクトリで、テンプレートのOpenSSL構成ファイルのコピーを作成します。

    # cp /etc/pki/tls/openssl.cnf ./
  2. ./openssl.cnfの構成ファイル・テンプレートを修正し、次の変更を行います。

    • [ req ]セクションで、次の行が非コメント化されていることと、先頭に#文字が付いていないことを確認します。

      req_extensions = v3_req # The extensions to add to a certificate request
    • [ v3_req ]セクションで、このセクションのパラメータの最後に、次の行を追加します。

      subjectAltName = @alt_names
    • 構成ファイルの最後にセクションを追加します。

      [ alt_names ]
      DNS.1 = hostname.example.com

      hostname.example.comを、証明書を作成するホストの完全修飾ドメイン名に置き換えます。

  3. 通常どおり証明書鍵を生成します。

    # openssl genrsa -out hostname.example.com.key 2048
  4. 証明書鍵と新しいopenssl.cnfファイルを使用して証明書署名リクエスト(CSR)を作成します。

    # openssl req -new -key hostname.example.com.key \
    -out hostname.example.com.csr -extensions v3_req -config openssl.cnf
  5. 生成されたCSRを使用して、信頼できる認証局(CA)から署名証明書を取得することもできます。 または、テスト目的で、次のようにこれを使用して自己署名証明書を生成することもできます。

    • v3要件の情報をホストできる新しい構成ファイルv3.cnfを作成します。 これを編集して、次の行を追加します。

      [v3_req]
      subjectAltName = @alt_names
      [alt_names]
      DNS.1 = hostname.example.com
    • 次のOpenSSLコマンドを実行し、CSRとローカル鍵を使用して自己署名証明書を生成します。

      # openssl x509 -req -days 365 -in hostname.example.com.csr -signkey hostname.example.com.key \
      > -out hostname.example.com.crt -extensions v3_req -extfile v3.cnf
  6. 鍵、CSRおよび証明書をホスト上の使用可能な場所にコピーします。

    # cp -f hostname.example.com.crt /etc/pki/tls/certs/
    # cp -f hostname.example.com.csr /etc/pki/tls/private/
    # cp -f hostname.example.com.key /etc/pki/tls/private/
  7. Ceph Object Gatewayが起動時に使用可能な、鍵と証明書の両方を含む単一のPEMファイルを作成します。

    # cp hostname.example.com.crt hostname.example.com.pem
    # cat hostname.example.com.key >> hostname.example.com.pem
    # cp hostname.example.com.pem /etc/pki/tls/

(Oracle Bug#24424028)