-
Proselfでクライアント認証を使用するための設定手順を教えてください。
以下に手順を記載いたします。
なお、クライアント証明書、失効リストの作成方法につきましては弊社のサポート外となりますので、あらかじめお含みおきください。
事前準備
-
クライアント認証を有効にした瞬間に接続できなくなるのを防ぐため、ProselfをインストールしたサーバーのWebブラウザから管理画面に接続します。詳細につきましては以下FAQをご参照ください。
https://www.proself.jp/support/faq391/
-
サーバーのWebブラウザをご利用できない場合は、クライアント認証を有効設定時でも暫定的にhttp接続できるようにするため以下設定を行っておきます。これにより、万が一設定に誤りがあってもhttpで接続して設定を戻すことが可能です。
-
Proselfインストールフォルダ/conf/proself.propertiesのバックアップを取得します。
※バックアップファイル名はproself.properties.backup.YYYYMMDD等としてください。
-
Proselfインストールフォルダ/conf/proself.properties内の末尾に以下を追記します。
proself.security.clientauth.http = true
※本設定は即時反映されます。Proselfのサービス再起動は必要ありません。
※クライアント認証の設定が終わり次第この設定は消去ください。
-
Proselfインストールフォルダ/conf/proself.propertiesのバックアップを取得します。
設定手順
以下前提での手順としております。
-
Proselfが動作しているサーバー上に自己認証局(プライベート認証局)を構築し、その認証局からクライアント証明書を発行します。
-
サーバー上にはopensslがインストールされているものとします。
-
自己認証局(プライベート認証局)を作成します。
自己認証局(プライベート認証局)を作成済みの場合は読み飛ばしてください。
以下コマンドを順に実行して/etc/ssl配下にディレクトリを作成します。
mkdir /etc/ssl/private既にディレクトリが存在する場合は上記コマンドの実行は必要ございません。
mkdir /etc/ssl/private/client
以下コマンドを実行し、秘密鍵、CSR、自己署名した証明書の作成を行います。本例では期限として3650日(=10年)を指定しています。
-
openssl 3.2未満をご利用の場合
openssl req -new -newkey rsa:2048 -nodes -out /etc/ssl/ca.pem -keyout /etc/ssl/private/ca.key -x509 -days 3650注意:上記を1行で記述します。
-
openssl 3.2以上をご利用の場合
以下例のように「-extensions v3_ca」オプションを指定ください。
openssl req -new -newkey rsa:2048 -nodes -out /etc/ssl/ca.pem -keyout /etc/ssl/private/ca.key -x509 -days 3650 -extensions v3_ca注意:上記を1行で記述します。
なお、「-extensions v3_ca」オプション指定時は openssl.cnfファイルの[ v3_ca ]セクション内に以下が存在することをご確認ください。
basicConstraints = critical,CA:true
以下コマンドを実行し、認証局が使用するシリアルナンバーファイルを作成します。
echo 02 > /etc/ssl/private/ca.srl
-
openssl 3.2未満をご利用の場合
-
クライアント証明書を作成します。
クライアントにインストールする証明書を作成します。
本手順は作成するクライアント証明書の数だけ実施する必要があります。
そのため、以下で記載している「client1.key」「client1.pem」「client1.p12」については、クライアント証明書を作成する度に別ファイル名とする必要があります。
クライアント証明書のキーと証明書署名要求を作成します。本例では期限として365日(=1年間)を指定しています。
※手順1で作成した認証局の証明書よりも必ず期限を短くしてください。そうしないとクライアント証明書が有効になりません。
openssl req -new -newkey rsa:2048 -nodes -out /etc/ssl/private/client/client1.req -keyout /etc/ssl/private/client/client1.key -days 365注意:上記を1行で記述します。
認証局の証明書とキーを使ってクライアント証明書の作成と署名を行います。本例では期限として365日(=1年間)を指定しています。
※手順1で作成した認証局の証明書よりも必ず期限を短くしてください。そうしないとクライアント証明書が有効になりません。
openssl x509 -CA /etc/ssl/ca.pem -CAkey /etc/ssl/private/ca.key -CAserial /etc/ssl/private/ca.srl -req -in /etc/ssl/private/client/client1.req -out /etc/ssl/private/client/client1.pem -days 365注意:上記を1行で記述します。
クライアント証明書の形式をX.509からPKCS12に変換します。
openssl pkcs12 -export -clcerts -in /etc/ssl/private/client/client1.pem -inkey /etc/ssl/private/client/client1.key -out /etc/ssl/private/client/client1.p12注意:上記を1行で記述します。
-
Proselfのクライアント認証をONにします。
Proselfに管理者でログインし、管理画面 - システム設定 - セキュリティ - クライアント認証設定の順にクリックしてクライアント認証設定画面へ移動します。
クライアント認証時のみ利用できる画面/機能
対象とする画面/機能にチェックを入れます。なお、管理画面のチェックを外すことはできません。
項目名 説明 ユーザー画面 チェックすると「ファイル一覧」、「ファイル送信」、「ファイル受信」全ての機能でクライアント認証が有効になります。有効にさせたい機能を限定させたい場合は該当機能のチェックボックスを変更してください。
Web公開画面 チェックするとWeb公開画面含めたProselfの全ての画面/機能でクライアント認証が有効になります。
クライアント認証オプション
必要に応じて設定ください。
項目名 説明 無し オプションを利用しません。 Auto(※) クライアント認証のCNのIDで自動ログインします。(Webブラウザのみの機能です。) Force クライアント認証のCNとログインIDが一致しない場合、ログインができなくなります。 ※Autoを選択する場合は、追加で以下手順を実施します。
-
Proselfを停止します。
-
Proselfインストールフォルダ/conf内にあるjaas.configをjass.config.bakにリネームします。
-
インストールメディア内のAppendix/confフォルダ内にあるjaas.configをProselfインストールフォルダ/conf内にコピーします。
-
Proselfを起動します。
-
Proselfを停止します。
-
ルート証明書を設定します。
手順3の設定を行うと、クライアント認証設定画面に「ルート証明書の設定」が表示されますので、「ルート証明書の設定」の「インポート」をクリックし「ルート証明書インポート」を表示します。
次に、手順1で作成した自己署名した証明書(ca.pem)をエディタで開き、「-----BEGIN TRUSTED CERTIFICATE-----」から「-----END TRUSTED CERTIFICATE-----」までをコピーして画面のテキストエリア内に貼り付け、「インポート」をクリックします。
-
ルート証明書インポートのダイアログが表示されます。
インポートするルート証明書の内容を確認し、「続行」をクリックします。
-
ルート証明書のインポートが行われます。
「クライアント認証設定」 - 「ルート証明書の設定」内のステータスが設定済に変わり、インポートしたルート証明書の内容が表示されていることを確認します。
-
(Ver5.64以下の場合)Proselfの再起動を行います。
クライアント認証を適用するためにProselfを再起動します。
-
クライアント証明書を用いたログインが行えることを確認します。
クライアント証明書をインストールしたWebブラウザからProselfにHTTPS接続を行い、クライアント証明書の選択ダイアログが表示されること、選択したクライアント証明書を使用してProselfにアクセスできることを確認します。
以上でクライアント認証の設定は終了です。
なお、追加でクライアント証明書の作成が必要な場合は、手順2のみ実施ください。
クライアント証明書を失効させる場合は、次項「失効リストの登録」を実施ください。
※失効リストを登録しない場合は実施しないでください。
失効リストの登録
-
証明書失効リストを用意します。
※最低でも1つ以上のクライアント証明書を失効させた状態の証明書失効リストをご用意ください。空の失効リストを読み込ませた場合、クライアント認証自体ができなくなってしまいます。
-
証明書失効リストをProselfインストールフォルダ/conf内にcrl.pemとして保存します。
-
Proselfインストールフォルダ/conf/server.xmlを開き、94行目付近のcertificateVerification行とtruststoreFile行の間に行を追加します。
(変更前)
<SSLHostConfig sslProtocol="TLS" protocols="+TLSv1.2+TLSv1.3"(変更後)
ciphers="TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
certificateVerification="optional"
truststoreFile="${catalina.base}/conf/ca.ssl" truststorePassword="changeit">
<Certificate certificateKeystoreFile="${catalina.base}/conf/keystore.ssl" certificateKeystorePassword="changeit" certificateKeyAlias="tomcat"/>
</SSLHostConfig>
<SSLHostConfig sslProtocol="TLS" protocols="+TLSv1.2+TLSv1.3"
ciphers="TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
certificateVerification="optional"
certificateRevocationListFile="${catalina.base}/conf/crl.pem"
truststoreFile="${catalina.base}/conf/ca.ssl" truststorePassword="changeit">
<Certificate certificateKeystoreFile="${catalina.base}/conf/keystore.ssl" certificateKeystorePassword="changeit" certificateKeyAlias="tomcat"/>
</SSLHostConfig>
※certificateRevocationListFile="${catalina.base}/conf/crl.pem"を追記します。
-
Proselfのサービスを再起動します。
-
管理画面 - システム設定 - セキュリティ - クライアント認証設定内に「失効リストのファイル登録設定」が表示されることを確認します。
-
失効リストに証明書を追加した場合は、上記crl.pemファイルを上書きし、「失効リストのファイル登録設定」内にある「設定」クリック後の画面で「適用」をクリックします。
※Ver5.64以下の場合は「適用」ではなく「Proselfの再起動」となっておりますので、「Proselfの再起動」をクリックします。
-
ダイアログが表示されますので、内容を確認後「適用」クリックします。
※Ver5.70以上のみ
-
失効リストが適用されますので、ダイアログ内のメッセージに従いWebブラウザを閉じて開きなおします。
※Ver5.70以上のみ
-
WebブラウザでProselfにHTTPSでアクセスし、クライント証明書選択ダイアログから失効済みのクライアント証明書を選択した場合にページが表示されないことを確認します。
以上で失効リストの登録は完了です。
(最終更新日:2025/01/21) -
クライアント認証を有効にした瞬間に接続できなくなるのを防ぐため、ProselfをインストールしたサーバーのWebブラウザから管理画面に接続します。詳細につきましては以下FAQをご参照ください。