WebページのためのSSLクライアント認証の設定
WebページのためのSSLクライアント認証の設定
木, 6月 1, 2023
やりたいこと
- Webページへのアクセス制限をSSLクライアント認証でおこないたい
現状は以下の通り.
- WebサーバーにはApacheを利用
- 対象のページはLet’s Encryptで発行されたSSLサーバ証明書を利用してhttps化されている
2については,オレオレ証明書を使うとiOS端末ではNSURLErrorDomain
エラーがでて表示できない(PCの場合ではブラウザに認証局追加する必要がある)ので,素直にLet’s Encryptを使うのが良い.
SSLクライアント認証によるアクセス制限
鍵や証明書のファイル形式についてはRSA鍵、証明書のファイルフォーマットについて | Qiitaなどを参照.
今回は以下のようにする.
- XXX.key クライアント秘密鍵
- XXX.csr クライアント証明書要求
- XXX.crt クライアント証明書
クライアントには以下のファイルを設定することになる.
- XXX.p12 クライアント証明書とクライアント秘密鍵をまとめたPKCS#12
- XXX.mobileconfig iOS/iPadOSデバイス向けのプロファイル
CA関係の以下のファイルは作成済みとする.
- CA_PATH/ca.key 中間CA証明書秘密鍵
- CA_PATH/ca.crt 中間CA証明書
- CA_PATH/ca.srl シリアル番号
クライアント証明書の作成
クライアント秘密鍵
openssl genrsa -out XXX.key
クライアント証明書要求
openssl req -new -days 180 -key XXX.key -out XXX.csr
ここでは有効期限を180日としている.
クライアント証明書へ署名
中間CA秘密鍵で署名する.
openssl x509 -req -days 180 -in XXX.csr -CA CA_PATH/ca.crt -CAkey CA_PATH/private/ca.key -CAcreateserial -CAserial CA_PATH/ca.srl --out XXX.crt
ここでは有効期限を180日としている.
PKCS#12
ブラウザなどへインポートするために,クライアント証明書とクライアント秘密鍵をPKCS#12ファイルへまとめる.
openssl pkcs12 -export -in XXX.crt -inkey XXX.key -out XXX.p12
クライアント証明書の設置
Firefox
XXX.p12
を読み込む.
iOS
プロファイルの作成
Apple Configuratorを使ってiOS向けのプロファイル(.mobileconfigファイル)を作成する.
- 「新規プロファイル」でプロファイル編集ウィンドウを新たに開く.
- 「一般」タブ
- 名前
- 組織(つけたければ)
- 「証明書」
- 「構成」から先程作成した.p12ファイルを読み込む
- 作成時に設定したパスワードを入力
- 保存
XXX.mobileconfig
ファイルが作成される
プロファイルのインストール
メールなどで送り,インストール.
iOS/iPadOSデバイス側では.mobileconfigファイルをメール(公式)もしくはSafariで開く必要があるので注意.
参考
最終更新日