SSL/TLS クライアント認証
SSL/TLS 認証を処理する方法は多数あります。どのように処理すべきかは、特定のサイトのセキュリティ要件によって決まります。以下に、SSL/TLS クライアント認証を実行するための最小要件を示します。
• クライアント証明書を生成する必要があります。これは X.509 パブリック/プライベート証明書のペアであり、通常は、pkcs12 キーストアとも呼ばれる PKCS #12 アーカイブファイルに保存されています。キーストアには多数のフォーマットがあり、その他のフォーマットで格納されていることもあります。
• クライアント証明書に署名したクライアント認証 (CA) 証明書を使用してクライアント SSL/TLS 証明書を検証するように Web サーバーが設定されている必要があります。
• SSL/TLS クライアント証明書認証を適用するように Web サーバーが設定されている必要があります。
• クライアントは、チャレンジを受け取ったときに SSL/TLS クライアント証明書をサーバーに提示できる必要があります。
SSL/TLS クライアント証明書の生成方法と CA 証明書は、サイトごとに異なります。これらの証明書を生成し、正しい CA 証明書を取得するには、最寄りの SSL/TLS 担当者にお問い合わせください。CA 証明書は、SSL/TLS クライアント証明書の署名に使用する必要があります。
Web サーバーの設定
Apache ベースの Web サーバー (PTC HTTP Server など) では、CA 証明書は PEM エンコードフォーマットである必要があります。Apache 2.4 で SSL/TLS クライアント証明書認証を設定する方法に関するドキュメンテーションは、以下の URL の Apache Web サイトで入手できます。
単純なケースでは、Apache で SSLCACertificateFile ディレクティブを使用して、クライアント SSL 証明書の検証に使用する CA 証明書ファイルを指定できます。例:
SSLCACertificateFile<HTTP サーバーのホーム>/<location_to>/ca.crt.
SSL CA 証明書が証明書チェーンである場合は、チェックするチェーン内の証明書の数を指定するように SSLVerifyDepth ディレクティブを設定する場合があります。SSL CA 証明書の詳細については、SSL 担当者にお問い合わせください。
前の 2 つの設定ディレクティブは、httpd.conf ファイルまたは conf/conf.d ディレクトリにある任意のファイルに記述できます。ただし、サイト固有の新しい CONF ファイルを作成し、このファイルを <HTTP サーバーのホーム>/conf/sslvhostsconf.d ディレクトリに追加することをお勧めします。このファイルは、デフォルトの SSL 仮想ホスト設定に自動的に追加されます。新しいファイルを作成すると、これらの設定ディレクティブの管理に役立つだけでなく、PTC の更新によって特定の設定値が上書きされるのを防ぐこともできます。
これらの値を設定した後、Web サーバーが認証を要求する URL を認識する必要があります。通常、これは
<HTTP サーバーのホーム>/conf/conf.d/30-app-[webappname]-Auth.conf ファイルで設定します。このファイルは自動的に生成されるので、変更が失われる可能性があります。これらの設定済みの値が上書きされないようにするため、
<HTTP サーバーのホーム>/conf/sslvhostsconf.d ディレクトリ内に以前に作成したサイト固有の CONF ファイルにこれらを追加します。PTC による自動生成ファイルに対する変更を設定する方法の詳細については、
PTC HTTP Server 設定レイアウトを参照してください。
各 LocationMatch ブロック内では、デフォルトファイルによって、少なくとも LDAP 認証が設定されます。
このブロックのディレクティブは、適切な SSL ディレクティブで完全に置き換えることができます。少なくとも以下のディレクティブが必要です。
• SSLVerifyClient require
• SSLUserName [varname]
SSLUserName varname 引数の値は、サイトのセキュリティ要件と証明書設定によって決まります。SSLUserName ディレクティブは、REMOTE_USER 変数を設定するために必要です。Apache mod_ssl ドキュメンテーションで説明するように、SSLUserName の代わりに FakeBasic オプションを使用することもできます。この代替オプションは、Windchill コンポーネントで使用可能な偽の HTTP 基本認証ヘッダーを提供するオプションとして使用してください。
Windchill クライアントによっては、SSL 認証をネイティブでサポートしていません。この場合、特定の認証メカニズムを使用するか、一定の Windchill URL への匿名アクセスを許可する必要があります。デフォルトでは、これらの URL リソースは <PTC HTTP Server のホーム>/conf/app-<Web アプリケーションの名前>-AuthRes.xml> ファイルで宣言されています。タイプが anonymous または protocolAuth であるリソースは、SSL クライアント検証が実行されないままでもアクセスできなければなりません。それらの URL の LocationMatch 規則には、ディレクティブ SSLVerifyClient none を含める必要があります。すべての URL で SSL 認証が設定されていることが認証の要件によって義務付けられている場合、別の方法として、証明書を使用してこれらの URL にアクセスするよう Apache サーバーを設定できます。
クライアントの互換性
以下のクライアントでは、Windchill で SSL 認証を有効にするよう設定する必要があります。
• Windchill Business Reporting
• Creo Parametric 2.0、3.0、および 4.0
1. Web ブラウザでユーザー固有の証明書をインポートします
▪ Internet Explorer: > > 。
▪ Chrome: > > 。
2. Creo Parametric を起動し、「コンフィギュレーションエディタ」を開きます
3. Creo 3.0 および 4.0 M010 の Chrome 埋め込みブラウザの場合は、値が Windchill サーバーの URL に設定されている dm_pki_authentication_url を追加します
|
Chrome 埋め込みブラウザの SSL 証明書認証は Creo 4.0 F000 ではサポートされていませんが、Creo 4.0 M010 ではサポートされています。
Creo 2.0 リリースでは Chrome 埋め込みブラウザはサポートされていないため、このステップは不要です。
|
4. 次回に Creo Parametric が起動したときに再ロードされるように config.pro ファイルを保存します
|
Creo 4.0 の新しい config.pro オプションは、Creo 4.0 M010 でのみサポートされます。
|
5. Creo Parametric を閉じて再び起動します
6. PKI が設定された Windchill サーバーを、 > から、またはこのサーバーのワークスペースユーザーインタフェースを使用して登録します。
7. ブラウザ内の証明書を使用してログインが処理されます
• Windchill Workgroup Manager ブラウザ
1. Web ブラウザでユーザー固有の証明書をインポートします
▪ Internet Explorer: > >
▪ Chrome: > >
2. 埋め込みブラウザを設定します。Windchill Workgroup Manager インストールポイントから、テキストエディタで wgmclient.ini ファイルを開きます
3. プリファレンス pki.authentication.url を検索し、その値を Windchill サーバーの URL に設定します。
4. wgmclient.ini を保存し、Windchill Workgroup Manager を起動します
5. PKI が設定された Windchill サーバーを > から登録します。
6. ブラウザ内の証明書を使用してログインが処理されます
一部のクライアントは SSL クライアント認証の設定がサポートされていません。ご自分のサイトで SSL 認証を実装する前に、これらのクライアントがどの程度使用されているか、およびこれらのクライアントの排除が SSL 認証の使用に対する妨げになるかどうかを確認してください。PTC は次のクライアントの SSL 認証設定をサポートしていません。
• Windchill Archive
• Windchill Gateway for Creo Elements/Direct Model Manager
• Windchill STEP Connector
Java ベースのクライアントの設定
多くの Web ブラウザには、クライアント証明書をユーザー証明書データベースにインポートするプロセスがあります。Web ブラウザは、リクエストに応じて証明書の指定をユーザーに求めます。Java ベースのクライアントには、独自の SSL 証明書データベースがあり、このデータベースを有効にするには、ラインパラメータが必要です。Java ベースのクライアントを使用して、チャレンジを受け取ったときに SSL クライアント証明書を提示できるようにするには、以下のパラメータが必要となります。
• -Djavax.net.ssl.keyStoreType=pkcs12
• -Djavax.net.ssl.keyStore=(path to pkcs12 file)
• -Djavax.net.ssl.keyStorePassword=(password for client certificate)
Java クライアントの場合は、これらのパラメータを Java コンソールで Java ランタイムパラメータに追加できます。コマンドラインアプリケーションの場合は、これらのパラメータをコマンドライン Java 仮想マシンに対する引数として指定する必要があります。