0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OCIクライアント証明書とFLBを使ってSSLクライアント認証をしてみた

Last updated at Posted at 2023-08-17

はじめに

クライアント証明書を持っている人だけがWebサーバへアクセスできるような構成を作っていきます。
事前準備として、以下のURLのようにサーバ証明書を使った構成がある状態から始めていきます。

構成イメージ

事前に認証局、FLB、Webサーバ、クライアント端末がある構成をとっています。
今回は太文字のところを設定していきます。
image.png

httpsリスナーにピア証明書の検証を設定

FLBのhttpsリスナーを編集します。
image.png
CA証明書の指定:作成した認証局
ピア証明書の検証 
深さ:1(ルート認証局場合は1 中間認証局の数に応じて2以上)

クライアント端末でCSRを作成する

クライアント端末で秘密鍵とCSR(Certificate Signing Request)を作成します。CSR には「公開鍵」とその所有者情報などが記載されています。ここではクライアントの情報を入力します。

秘密鍵の作成
openssl genrsa -out client.key 2048
X509証明書発行要求(CSR)の作成
openssl req -new -key client.key -out client.csr
CSR情報の入力
~~~~
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:★必須
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:★そのままエンターでも可
An optional company name []:
openssl req -new -key client.key -out client.csr

後ほど認証局に登録する際にCN(Common Name)の値が空欄だとエラーになったので値を入力しておきます。
それ以外は任意で入力してください。

認証局でCSRを承認してクライアント証明書を作成

認証局から証明書の発行を選択します。

基本情報
image.png
[内部CAによって発行され、外部で管理] を選択します。

証明書構成
image.png
client.csrをcatコマンドなどで開き、貼り付けます。

クライアント端末でクライアント証明書と秘密鍵をバンドルする

先ほど作成した証明書を選択後、バージョン、最新のバージョンの トリコロン をクリックします。「詳細の表示」から証明書のpemファイルをダウンロードします。
image.png

クライアント証明書と秘密鍵をバンドルしてpkcs12を作成
openssl pkcs12 -export -inkey client.key -in client_certificate.pem -out client.p12 -name "client1"

Enter Export Password:
Verifying - Enter Export Password:
と出てきますが、今回はそのままエンターを押します。

私の環境ではパスフレーズの入力プロンプトが出ず無反応になってしまう事象がありました。
Git for Windows付属のopensslを実行するときはwinptyが必要なのでwinptyコマンドが必要です。
$ winpty openssl pkcs12 -export -inkey client.key -in client_certificate.pem -out client.p12 -name "client1"

アクセス

まずは、インポートせずにアクセスします。
image.png

No required SSL certificate was sentと出てきてアクセスできません。

続いてpkcs12ファイルを端末にインストールします。
pkcs12ファイルをクリックするとウィザードが出てきますので、個人の欄にインポートされていることを確認してください。
image.png

インポート後アクセスしてみると証明書の選択と出てきますのでOKを押します。
image.png

image.png

アクセスできました。

さいごに

クライアント証明書を持っている人だけがアクセスできるような環境はできました。しかしながら実運用では端末を紛失したり秘密鍵などが漏れた場合、証明書を失効させるケースがありますがFLBには失効を確認する手段がないため、例えば証明書の有効期限を短くする運用などが求められると思います。

参考文献

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?