LoginSignup
6
6

More than 5 years have passed since last update.

WindowsストアアプリでTLS/SSL自己署名証明書を使う

Last updated at Posted at 2013-06-30

Windowsストアプリでは証明書拡張機能を使ってアプリケーションと一緒にデジタル証明書をインストールする方法が用意されている。
WindowsストアアプリにおいてTLS/SSL自己証明書をインストールする方法について説明する。

証明書を準備する

Windowsストアアプリでは通信接続先のサーバホスト名と証明書のCommon Nameが一致しているかチェックされるため、Common NameについてFQDNまたはIPアドレスを正確に指定して自己署名証明書を作成する。
今回はサーバIPアドレスが192.168.1.101の自己署名証明書ファイルserver-crt-192p168p1p101.pemと仮定する。

秘密鍵の作成
$ openssl genrsa -out server-key-192p168p1p101.pem 2048
証明書署名要求の作成
$ openssl req -new -key server-key-192p168p1p101.pem -out server-csr-192p168p1p101.pem
自己署名証明書の作成
$ openssl x509 -req -days 365 -in server-csr-192p168p1p101.pem -signkey server-key-192p168p1p101.pem -out server-crt-192p168p1p101.pem

アプリに証明書を配置する

準備した証明書ファイルをドラッグ&ドロップによりWindowsストアプリの適当な場所に配置する(下記例ではAssetディレクトリ以下に証明書ファイルを配置)。
各証明書ファイルのプロパティについて下記の通り設定する。

  • ビルドアクション: コンテンツ
  • 出力ディレクトリにコピー: 常にコピーする

SolutionExplorer_101_80p_check.png Property_101_80p_check.png

マニフェスト宣言を行う

  1. サポートされる宣言について証明書を選択する。
  2. 各証明書について、ストア名にはRoot、コンテンツには該当証明書ファイル場所を入力する。
  3. 複数の証明書をアプリ側(アプリコンテナ)から自動選択させる場合は、自動選択にチェックを入れる。

Appmanifest_101_70p_check.png

Package.appxmanifestファイルに直接XML形式で記述する際は、Extensionsタグ内に記述する。

Package.appxmanifest一部抜粋
  </Capabilities>
  <Extensions>
    <Extension Category="windows.certificates">
      <Certificates>
        <Certificate StoreName="Root" Content="Assets\server-crt-192p168p1p101.pem" />
        <SelectionCriteria AutoSelect="true" />
      </Certificates>
    </Extension>
  </Extensions>
</Package>

 
[参考URL]
How to connect to a Http Rest Service with Self Signed Certificate(in the server side).

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6