2012年4月5日

Windows Azureのクライアント証明書設定

Windows Azureでクライアント証明書の設定を行いました、設定項目自体少ないですが、動作確認できるまで結構時間かかりました。
設定方法は下記通り

  1. サーバー証明書作成
    既に証明機関発行のサーバー証明書がある場合、次のステップへ

    ● 管理者モードでVisual Studio 2010のコマンドプロンプトを起動
    image

    ● 管理者モードで起動されたコマンドプロンプト
    image

    ● コマンドプロンプトから下記コマンドでサーバー証明書CAを作成
    makecert -r -pe -a sha1 -n "CN=your_server_ca" -ss Root -sr LocalMachine -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 your_server_ca.cer
    image

    ● コマンドプロンプトから下記コマンドでサーバー証明書を作成
    makecert -pe -n "CN=your_server.cloudapp.net" -ss my -sr LocalMachine -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "your_server_ca" -is Root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 your_server.cer
    image

  2. クライアント証明書作成
    既に証明機関発行のクライアント証明書及びCA証明書がある場合、次のステップへ

    ● コマンドプロンプトから下記コマンドでクライアント証明書CAを作成
    makecert -r -pe -a sha1 -n "CN=your_client_ca" -ss Root -sr LocalMachine -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 your_client_ca.cer
    image

    ● コマンドプロンプトから下記コマンドでクライアント証明書を作成
    makecert -pe -n "CN=your_client_cert, O=Your Org" -ss my -sr CurrentUser -a sha1 -sky exchange -b 04/01/2012 -e 12/31/2012 -eku 1.3.6.1.5.5.7.3.2 -in "your_client_ca" -is Root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 your_client_cert.cer
    image
  3. ServiceDefinition.csdefファイルの<WebRole>タグに下記追加
    <Startup>
      <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple">
      </Task>
    </Startup>
    <Certificate name="ServerCert" storeLocation="LocalMachine" storeName="My" />
    <Certificate name="RootCert" storeLocation="LocalMachine" storeName="CA" />
    <Certificate name="ClientCertRoot" storeLocation="LocalMachine" storeName="My" />
  4. ServiceConfiguration.cscfsファイルの<Role>タグに下記追加
    <Certificates>
      <Certificate name="ServerCert" thumbprint="thumbprint of your_server_cert" thumbprintAlgorithm="sha1" />
      <Certificate name="RootCert" thumbprint="thumbprint of your_server_ca" thumbprintAlgorithm="sha1" />
      <Certificate name="ClientCertRoot" thumbprint="thumbprint of your_client_ca" thumbprintAlgorithm="sha1" />
    </Certificates>
  5. WebRoleプロジェクトにstartup.cmdファイルを追加、内容は下記通り
    %windir%\System32\certutil -store my "thumbprint of your_client_ca" e:\client_cert_root.cer
    %windir%\System32\certutil -addstore root e:\client_cert_root.cer
    %windir%\System32\inetsrv\appcmd.exe set config /section:access /sslFlags:Ssl,SslNegotiateCert,SslRequireCert /commit:APPHOST

参考リンク:http://msdn.microsoft.com/en-us/hh150145

0 件のコメント:

コメントを投稿