RealPath:
WebPath:
2017/04/28 03:10 (JST) 更新
Azure >>

SSL設定

Contents

Azure の App Services にて SSL 設定 (HTTPS 設定) を行う場合、.pfx 形式のファイルを作成する必要がある。

各ファイルの作成には openssl コマンドが必要となるので、あらかじめ手元に OpenSSL をインストールしておくこと。ファイルの作成作業に用いる環境は Windows でも Mac でも Linux でもどこでも良い(openssl コマンドが動けばどこでも良い)。

仮前提

今回は仮に Azure 上の App Services インスタンスに "hoge.clock-up.jp" というドメインが割り当てられた状態を想定し、これに対して HTTPS アクセス (SSL アクセス) を行うための設定手順を紹介する。

設定の流れ

  1. 秘密鍵 (*.key) を作る
  2. CSR ファイル (*.csr) を作る (Certificate Signing Request。署名申請ファイル)
  3. SSL サーバ証明書 (*.crt) の入手 (今回は RapidSSL (有料) を用いる)
  4. PEM 形式の SSL 証明書 (*.pem) を作る
  5. PFX ファイル (*.pfx) を作る
  6. PFX ファイルのアップロード

秘密鍵 (*.key) 作成

bash
$ openssl genrsa -des3 -out hoge.key 2048
....
Enter pass phrase for hoge.key: (適当なパスフレーズを決めて入力)
Verifying - Enter pass phrase for hoge.key:  (同じパスフレーズを入力)

$ ls -l *.key
-rw-rw-r-- 1 kobake kobake 1743 Apr 27 21:15 hoge.key

 
以後のパスフレーズ入力を省きたい場合、以下コマンドによりパスフレーズを削除できる。

bash
$ openssl rsa -in hoge.key -out hoge.key

$ ls -l *.key
-rw-rw-r-- 1 kobake kobake 1675 Apr 27 21:17 hoge.key

CSR ファイル (*.csr) 作成

CSR (Certificate Signing Request) ファイル。いわゆる署名申請用のファイル。
Common Name (ドメイン名) が最重要なのでここは間違えないこと。

bash
$ openssl req -new -key hoge.key -out hoge.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP … 国
State or Province Name (full name) []:Tokyo … 都道府県
Locality Name (eg, city) [Default City]:Taito-ku … 市区町村
Organization Name (eg, company) [Default Company Ltd]:ClockUpJp … 団体名
Organizational Unit Name (eg, section) []: … 部署名 (空で良い)
Common Name (eg, your name or your server's hostname) []:hoge.clock-up.jp (ドメイン名)
Email Address []:kobake@users.sourceforge.net … 連絡先メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: … 空で良い
An optional company name []: … 空で良い

CSR ファイル内容確認

bash
$ openssl req -text -noout -in hoge.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=JP, ST=Tokyo, L=Taito-ku, O=ClockUpJp, CN=hoge.clock-up.jp/emailAddress=kobake@users.sourceforge.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c0:97:92:d3:ae:......
    ....
    ....

サーバ証明書 (*.crt) の入手

今回は例として、さくらインターネットで RapidSSL (1,500円/年) を申し込んでみる。

  1. https://secure.sakura.ad.jp/signup3/ssl/service.html へアクセス
  2. ラピッドSSLを選択し、支払情報を入力した後、「CSRの入力へ進む」で次ページに遷移
  3. 「CSR(証明書情報)の内容確認」ページにて、さきほど作成した CSR ファイルの中身を(テキストエディタ等でコピペする等して)まるまる貼り付けてアップロード。
  4. しばらくすると「認証ファイル」の案内がメールで届くので、指示に従い認証ファイル (fileauth.txt) を取得。
  5. http://hoge.clock-up.jp/.well-known/pki-validation/fileauth.txt としてアクセスできるように fileauth.txt を設置。
  6. しばらくすると「SSL サーバ証明書」発行の案内メールが届くので、指示に従い SSL サーバ証明書 (server.crt) を取得。

PEM 形式の SSL 証明書 (*.pem) の作成

bash
$ cat hoge.key server.crt > hoge.pem

PFX ファイル (*.pfx) の作成

bash
$ openssl pkcs12 -export -in hoge.pem -out hoge.pfx

PFX ファイルを Azure 管理画面でアップロード

作成済みの App Services インスタンスの設定から [SSL certificates] を開き、[Upload Certificate] ボタンから .pfx ファイルをアップロードする。

これで指定の App Services へ HTTPS アクセスを行えるようになる。
(今回の例では https://hoge.clock-up.jp/ のようなアクセスが可能となる)