スポンサーリンク
やりたい事
iPad/iPhoneから、IPアドレス指定で、社内のWEBサーバとhttps通信します。
通常は、サーバ証明書を、ドメイン名で発行して https化します。
しかし、iPad/iPhoneから、ローカルサーバにドメイン名(ホスト名)でアクセスするには、名前解決の為のDNSサーバが必要になります。
[ドメイン名(ホスト名)で iPad/iPhoneからアクセスする場合]
開発用途の為に、DNSサーバを用意するのは面倒なので、今回はOpenSSL
を使って、IPアドレスに対してサーバ証明書を発行していきたいと思います。
そうすれば、https://192.168.xxx.xxx
などのIPアドレス指定で、https通信が可能となり、結果DNSサーバが不要になります。
[IPアドレスで iPad/iPhoneからアクセスする場合]
環境
今回構築する環境は以下の通りです。
- Webサーバ
・Windows Server 2012
・IIS
- クライアント
・iPad, IPhone ( IOS 12 )
スポンサーリンク
CA証明書(ルート証明書)の作成
まずは、自己CA証明書を作成していきます。
CA証明書の秘密鍵を作成
openssl genrsa 2048 > ca.key
CA証明書要求を作成
コマンド入力後、いくつかの質問をされるので、適切に答えます。
openssl req -new -key ca.key -out ca-certificate-request.csr
[質問の内容と回答の例]
Country Name (2 letter code) []:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) []:Minato-ku
Organization Name (eg, company) []:my-company
Organizational Unit Name (eg, section) []:my-section
Common Name (eg, fully qualified host name) []:Local System CA
Email Address []:sample@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:password
CA証明書要求に自己署名し、CA証明書を作成
CA証明書の期限切れが発生しないよう、有効期限-days
に大きめの日数を入力しています。
openssl req -x509 -key ca.key -in ca-certificate-request.csr -out ca-certificate.crt -days 3650
CA証明書をインストール (信頼済みの証明書として登録)
作成した自己CA証明書を、Windows Server / iPad・IPhone に登録します。
- Windows Server
ca-certificate.
をダブルクリックします。
- [インストール]をクリック
- 証明書ストアに[信頼されたルート証明機関]を選択
- iPad / iPhone
iPadでの画面イメージで説明します。(iPhoneでも同じ手順です)
- CA証明書
ca-certificate.crt
をメール等で、 iPadに送りつけます。(DropBox等でも可)
- ファイルをクリックして、CA証明書をインストールします。
- 設定 -> [一般] -> [証明書信頼設定]を選択します。
- インストールしたCA証明書の信頼設定をONにします。
サーバ証明書の作成
IISでサーバー証明書要求を作成
インターネット インフォメーション(IIS)マネージャーを開いて、サーバ証明書のアイコンを選択します。
「証明書の要求の作成」のリンクをクリック
識別名プロパティに、必要事項を入力します。
一般名には、Webサーバのホスト名を入力して下さい。
暗号化プロバイダを選択して[次へ]
サーバ証明書要求の保存先を選択して、[保存]をクリック
※ 保存先は、CA証明書を作ったフォルダと同じ所を指定して下さい
extfileの作成
v3.ext
というファイル名で、以下の内容のファイルを作成します。
ファイルの保存先は、CA証明書を作ったフォルダと同じ所です。
[v3.ext]
[SAN]
subjectAltName=@alt_names
basicConstraints=CA:FALSE
[alt_names]
DNS.1=My-Server
IP.1=192.168.111.111
IP.2=127.0.0.1
※ DNS.1
を、Webサーバのホスト名に書き換える
※ IP.1
を、WebサーバのIPアドレスに書き換える
サーバ証明書の作成
以下のコマンドで、サーバー証明書要求を、CA秘密鍵で署名して、サーバ証明書を作成します。
ここでも、証明書の期限切れが発生しないよう、有効期限-days
に大きめの日数を入力しています。
openssl x509 -req -CA ca-certificate.crt -CAkey ca.key -CAcreateserial -CAserial ca-serial.srl -in server-certificate-request.txt -out server-certificate.crt -days 3650 -extfile v3.ext -extensions SAN
IISで証明書要求の完了を行う
再度、インターネット インフォメーション(IIS)マネージャーを開いて、「証明書の要求の完了」クリック。
作成したサーバ証明書を選択して、[完了]をクリック。
登録が成功すると、証明書の一覧に表示されます。
バインドの編集 (https化)
https化するWebサイトの上で、右クリック -> [バインド]を選択します
[追加]ボタンをクリックします。
[種類]にhttpsを選択し、[SSL証明書]に登録したサーバ証明書を選択します
スポンサーリンク
動作確認
設定が終わったら、https化されているか確認しましょう。
ブラウザを開いて、アドレスに https://<WEBサーバのIPアドレス>
を入力します。
開いたページのアドレスバーを見て、下のイメージのようになっていればOKです。
最後に
正直手順が多くて、少し大変でした。
でも、一度環境を作ってしまえば、証明書の期限を気にせず、ずっと使えるので、かなり重宝すると思います。
0 件のコメント:
コメントを投稿