MS証明書サービスはOpenSSLで作成されたCAの下位になれますか


16

ドメインのエンタープライズ証明機関をセットアップしたい。そのため、さまざまな目的で証明書を発行できます。オフラインCAをルートとして持つベストプラクティスに従い、エンタープライズCAを下位としてセットアップしたいと思います。しかし、このタスクのためにWindowsの完全なコピーのライセンスを取得するのはばかげているようです。

私ができることを望んでいることは、ライブディストリビューションをUSBフラッシュディスクにインストールしてから、opensslをインストールし、フラッシュドライブにCAをセットアップすることです。ルートキー/証明書を作成する準備ができたら、コンピューターをネットワークから切断し、ネットワークに接続されたコンピューターでそのUSBディスクを使用することはありません。

WindowsエンタープライズCAの下位CA証明書を適切に署名して作成できますか。これは使用可能になります。CAを構築し、下位CA証明書に適切に署名するためにOpenSSLで使用する必要があるオプションは何ですか。

私はウェブを検索しようとしましたが、これこの件について見つけることができる唯一のものでした。しかし、それは2008年より前であり、その人物がすべて成功したかどうかは完全にはわかりません。


明確にするために、ツールは必ずしもOpenSSLである必要はありませんが、EJBCAのような巨大なCAを実行したくありません。livecd / liveusb環境で実行できる非常に軽量なCAを探しています。
ゾレダチェ

回答:


14

うん、それはうまく動作します。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 。

ワーキングCA


6

私はあなたが何を得ているのかはわかりますが、OpenSSLがこの仕事のためのツールであるとは思いません。あなたは見たいかもしれませんオープンソースの認証局のプロジェクトのようなEJBCA以上のOpenSSLよりも、この機能に焦点を当てている、とあなたが使用することができ、特定のドキュメントを持っています。

下位CAの証明書に署名するだけなので、この概念が機能しない理由はわかりません。これを行うためにパブリックCAにお金を払っていた場合、使用しているサーバーのフレーバーを必ずしも知る必要も、気にする必要もありません。

気にする必要があるのは次のとおりです。

  • あなたはあなたの部下によって生成されたCSRから証明書に署名することができます
  • 結果は部下自体にインストールできます
  • 対象のクライアントに信頼できるものとしてインストールできるルート署名証明書がある
  • どこかに提供される失効リストを生成できます

私がこれをやったと言うことはできませんが、WindowsボックスからCSRを生成するためのドキュメントに従い、CSRから.p7k証明書を生成するためにCAドキュメントに従うと確信しています。

ちなみに、ブートディスクではなく、Hyper-VやVMwareなどの一般的なハイパーバイザーの仮想マシンとしてCAを作成し、後継者が見つけられる場所に安全に保管し、スピンすることをお勧めします定期的にオフラインで実行して、実行されることを確認するか、新しいメディア/テクノロジーに転送してください。ルートCAの寿命は10〜20年です。


+1 OpenSSLはCAを作成するための最高のツールではありませんが、一般的に機能します。私はWindows Enterprise CAの下位CA証明書を発行していませんが、なぜ機能しないのか想像できません(MSは過去により悪質な反競争的行為を行っていますが)。VMとしてのCAにはBig +1。ルート証明書の2番目のコピーを保持することをお勧めします(紙のBase64は非常に耐久性があり、セーフティボックスやデポジットボックスなどに保管しやすい)
クリスS

NICなしでVMをセットアップし、仮想フロッピードライブを使用してCSRを有効にし、証明書を無効にすることができることに気付いたとき、私はかなり満足していました。スニーカーネットは21世紀のバーチャルな輝きで生まれ変わりました!
dunxd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.