うん、それはうまく動作します。Windows認証局には、Windows以外のルートの下位として実行することについての不安はありません。
OpenSSLルートおよびエンタープライズモードのWindows 2008 R2下位でテスト済み。
MS CAがOpenSSL構成で期待するものとうまく連携するいくつかのこと:
有効なAIAおよびCDPの場所は、自己署名ルートのセクションのx509_extensions
プロパティで構成されたセクションのルート証明書に適用する必要があります[req]
。これらの線に沿って何か:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
特定のOpenSSL構成では、おそらくデフォルトで下位CAが許可されません。署名済みのリクエストの場合は変更します(もちろん、CAであってはならないリクエストの場合、これが適切でないことを確認してください)。これは、セクションのx509_extensions
プロパティによって構成されたセクションにあります[ca]
。
basicConstraints=CA:TRUE
certificatePolicies=2.5.29.32.0
そのため、テストのためにCAを実行します。
ルートを作成します。
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
設定をいじって、必要なファイルとディレクトリを[ca]
OpenSSL設定のセクションに作成します。
すべてがMicrosoft側の物事を進めようとしています。手動署名でWindows下位CAを作成します。
OpenSSLサーバーに証明書要求をアップロードします。作業中に、ルート証明書をダウンロードします。ユーザーではなく、コンピューターの信頼されたルートストアにインポートします。
下位証明書を発行します。
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
それが機能しなかった場合、CAに新しい証明書ディレクトリ、インデックスファイル、シリアルファイルなどの構成に問題がある可能性があります。エラーメッセージを確認してください。
それが行った場合、それはそれです。そうでない場合は、CRLを作成し、上記で構成したCDPに入れます。Apacheをインストールし、webrootでジャムしました。
openssl ca -gencrl -out /var/www/root.crl
また、証明書がまだない場合は、AIAの場所に配置します。
cp /etc/ssl/certs/root.pem /var/www/root.pem
新しく発行された下位証明書をダウンロードし、証明機関MMCスナップインでCAにインストールします。信頼や検証に関する問題については不満を抱きますが、それを受け入れることに道徳的な異議はありません。
最終結果; エンタープライズPKIスナップインからの不満のないOpenSSL Generated Certificate
、属性に明確な情報を備えた、機能するWindowsCA 。