WebページのためのSSLクライアント認証の設定

WebページのためのSSLクライアント認証の設定

木, 6月 1, 2023

やりたいこと

  • Webページへのアクセス制限をSSLクライアント認証でおこないたい

現状は以下の通り.

  1. WebサーバーにはApacheを利用
  2. 対象のページは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ファイル)を作成する.

  1. 「新規プロファイル」でプロファイル編集ウィンドウを新たに開く.
  2. 「一般」タブ
    • 名前
    • 組織(つけたければ)
  3. 「証明書」
    • 「構成」から先程作成した.p12ファイルを読み込む
    • 作成時に設定したパスワードを入力
  4. 保存

XXX.mobileconfigファイルが作成される

プロファイルのインストール

メールなどで送り,インストール.

iOS/iPadOSデバイス側では.mobileconfigファイルをメール(公式)もしくはSafariで開く必要があるので注意.

参考

最終更新日