locked
Exchange Server 2016の自己署名証明書のエクスポートができない RRS feed

  • 質問

  • はじめまして、初めて質問をさせていただきます。

    ExchangeServer2016からクライアント配布用の自己署名証明書ファイルをエクスポートしようとするとエラーが表示され

    エクスポートできません。

    構成:Windwos2012R2+ExchangeServer2016 CU4

    手順:

    1.下記マイクロソフト社からの手順に従って、Exchange管理ツールおよびShell両方の手順でExchangeServer2016の

     自己署名証明書ファイルのエクスポートを試みました。

     ※URLが貼り付けできませんので表題を記載いたします。 

     『Exchange サーバーから証明書をエクスポートする』の技術文書

      

    2.GUIとShellで実行した場合に同じエラーが発生し自己署名証明書ファイルをエクスポートできません

      エラー内容:

      サーバー[Exchangeサーバ名]上で、特別なRPCエラーが発生しました。秘密キーをPKCS-12として  

      エクスポートできませんでした。秘密キーにアクセスできないか、エクスポート可能な秘密キーではありません。

    3.エクスポート先をUNC名で別サーバーや自身のサーバーのC$に変更しても改善されませんでした。

        グループポリシーで配信する自己署名証明書ファイルをエクスポートする事が目的です、

      何か手順が間違えているのでしょうか原因が全くわかりませんご教授お願いいたします。

      また、IISからも自己署名証明書ファイルをエクスポートできた記憶があります、ExchangeSever2016の場合は

      やはりExchange管理ツールからエクスポートできないのでしょうか?

    以上、よろしくお願いいたします。

      








    2017年2月7日 0:45

回答

  • クライアントへの配布で利用されるということでしたら、おそらく用途はExchangeに接続する際に証明書エラーが出ないようにするためかと存じます。

    その場合、エクスポートする証明書に秘密鍵は必要ありません。ブラウザで接続して、証明書をクリックして保存すればよろしいかと思います。

    Exchangeからのエクスポートはクライアントにインポートする為ではなく、同じ証明書を利用する別のExchangeサーバにインポートすることを目的としてます。このため、秘密鍵と一緒にエクスポートしようとします。

    2017年2月13日 0:02
  • おそらくですが、いままで自己署名証明書を使用しOutlookで警告が出ないような設定にしていたのではないかと推測します。

    その場合、単純に証明書をエクスポートしインポートしただけでは警告が解消されないのではないでしょうか。

    最終的なゴールがどこにあるのか記載いただけませんか。

    例えば、@contoso.co.jp というメールアドレスを使用していた場合、以下の名前空間が証明書に含まれている必要があります。

    autodiscover.contoso.co.jp

    contoso.co.jp

    そのため、自己署名証明書をする際に上記の名前空間を含む形で作成し、その証明書をエクスポートすればよいのではないでしょうか。

    2017年2月13日 1:32
  • メッセージを見て思いつくのは、アクセス権があるか?証明書がエクスポート可能ではないのでは?という点です。

    Exchangeは詳しくないですが、証明書は、作成時、インポート時、エクスポート時それぞれで、エクスポート可能であるというフラグを付けわすれると、エクスポート可能でなくなるんじゃないかと思います。

    重要な証明書を、簡単にシステムから抜き取って、他に移せたらまずいこともあるでしょうから・・・

    作成、エクスポート、インポートのリンク

    EAC

    https://technet.microsoft.com/ja-jp/library/dd351057(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/bb310778(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/bb310769(v=exchg.160).aspx

    Cmdlet

    https://technet.microsoft.com/ja-jp/library/aa998327(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/aa996305(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/bb124424(v=exchg.160).aspx

    ざっと読んだ感じですと、アクセス権については前提条件に載っているので割愛するとして、エクスポート可能については、

    一番大事なのが「Export-ExchangeCertificate」のページの下の方。

    証明書の PrivateKeyExportable プロパティの値が True の場合に限り、証明書を Exchange サーバーからエクスポートできます。PrivateKeyExportable パラメーターの既定値が $false であるため、Exchange 管理センター 内で作成する、または New-ExchangeCertificate コマンドレットを使用して作成する既定の Exchange 自己署名証明書またはその他の自己署名証明書は、エクスポートできません。他のサーバー上でエクスポートおよびインポートできる自己署名証明書を作成するには、New-ExchangeCertificate コマンドレットと PrivateKeyExportable パラメーター値 $true を使用します。

    ということで、作成時に明示的にエクスポート可能にしなければならないのが1点。

    次に、エクスポートについて、「Exchange 2016 サーバー上の証明書をインポートまたはインストールする」のページの上の方。

    Exchange サーバーにインポート可能な証明書ファイルの種類は次のとおりです。



    EAC または PrivateKeyExportable パラメーターの値 $true が指定された Export-ExchangeCertificate を使用して、他の Exchange サーバーからエクスポートされた自己署名入りの証明書。詳細については、「Exchange サーバーから証明書をエクスポートする」を参照してください。

    これをそのまま読むと、現在のサーバの証明書を他のサーバからエクスポートしたときに、EACを使用しなかった、かつ、PrivateKeyExportable パラメーターの値 $true が指定された Export-ExchangeCertificate を使用しなかった場合は、現在のサーバからエクスポートはできないというとになります。

    次に、インポートについては、同じページの下の方のコマンドのメモ。

    証明書をインポートしているサーバーから証明書をエクスポートする場合は、値が $true の PrivateKeyExportable パラメーターを使用する必要があります。 詳細については、「Import-ExchangeCertificate」を参照してください。

    とあります。

    2017年2月12日 3:53

すべての返信

  • メッセージを見て思いつくのは、アクセス権があるか?証明書がエクスポート可能ではないのでは?という点です。

    Exchangeは詳しくないですが、証明書は、作成時、インポート時、エクスポート時それぞれで、エクスポート可能であるというフラグを付けわすれると、エクスポート可能でなくなるんじゃないかと思います。

    重要な証明書を、簡単にシステムから抜き取って、他に移せたらまずいこともあるでしょうから・・・

    作成、エクスポート、インポートのリンク

    EAC

    https://technet.microsoft.com/ja-jp/library/dd351057(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/bb310778(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/bb310769(v=exchg.160).aspx

    Cmdlet

    https://technet.microsoft.com/ja-jp/library/aa998327(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/aa996305(v=exchg.160).aspx

    https://technet.microsoft.com/ja-jp/library/bb124424(v=exchg.160).aspx

    ざっと読んだ感じですと、アクセス権については前提条件に載っているので割愛するとして、エクスポート可能については、

    一番大事なのが「Export-ExchangeCertificate」のページの下の方。

    証明書の PrivateKeyExportable プロパティの値が True の場合に限り、証明書を Exchange サーバーからエクスポートできます。PrivateKeyExportable パラメーターの既定値が $false であるため、Exchange 管理センター 内で作成する、または New-ExchangeCertificate コマンドレットを使用して作成する既定の Exchange 自己署名証明書またはその他の自己署名証明書は、エクスポートできません。他のサーバー上でエクスポートおよびインポートできる自己署名証明書を作成するには、New-ExchangeCertificate コマンドレットと PrivateKeyExportable パラメーター値 $true を使用します。

    ということで、作成時に明示的にエクスポート可能にしなければならないのが1点。

    次に、エクスポートについて、「Exchange 2016 サーバー上の証明書をインポートまたはインストールする」のページの上の方。

    Exchange サーバーにインポート可能な証明書ファイルの種類は次のとおりです。



    EAC または PrivateKeyExportable パラメーターの値 $true が指定された Export-ExchangeCertificate を使用して、他の Exchange サーバーからエクスポートされた自己署名入りの証明書。詳細については、「Exchange サーバーから証明書をエクスポートする」を参照してください。

    これをそのまま読むと、現在のサーバの証明書を他のサーバからエクスポートしたときに、EACを使用しなかった、かつ、PrivateKeyExportable パラメーターの値 $true が指定された Export-ExchangeCertificate を使用しなかった場合は、現在のサーバからエクスポートはできないというとになります。

    次に、インポートについては、同じページの下の方のコマンドのメモ。

    証明書をインポートしているサーバーから証明書をエクスポートする場合は、値が $true の PrivateKeyExportable パラメーターを使用する必要があります。 詳細については、「Import-ExchangeCertificate」を参照してください。

    とあります。

    2017年2月12日 3:53
  • クライアントへの配布で利用されるということでしたら、おそらく用途はExchangeに接続する際に証明書エラーが出ないようにするためかと存じます。

    その場合、エクスポートする証明書に秘密鍵は必要ありません。ブラウザで接続して、証明書をクリックして保存すればよろしいかと思います。

    Exchangeからのエクスポートはクライアントにインポートする為ではなく、同じ証明書を利用する別のExchangeサーバにインポートすることを目的としてます。このため、秘密鍵と一緒にエクスポートしようとします。

    2017年2月13日 0:02
  • おそらくですが、いままで自己署名証明書を使用しOutlookで警告が出ないような設定にしていたのではないかと推測します。

    その場合、単純に証明書をエクスポートしインポートしただけでは警告が解消されないのではないでしょうか。

    最終的なゴールがどこにあるのか記載いただけませんか。

    例えば、@contoso.co.jp というメールアドレスを使用していた場合、以下の名前空間が証明書に含まれている必要があります。

    autodiscover.contoso.co.jp

    contoso.co.jp

    そのため、自己署名証明書をする際に上記の名前空間を含む形で作成し、その証明書をエクスポートすればよいのではないでしょうか。

    2017年2月13日 1:32
  • エラーメッセージにばかり気が行って、埋もれていた質問の掘り起しにしかならなかったですね。勉強になりました
    2017年2月13日 3:14