Web サービス用の Secure Sockets Layer (SSL) サポート
SSL は、Web サーバとブラウザ間で暗号化された通信を行うための標準セキュリティ技術です。Creo Elements/Direct Model Manager Web サービス/Web クライアント用の SSL サポートにより、Web サーバと Web ブラウザ間で交換される情報は安全に保護されます。暗号化リンク (SSL リンク) を生成するには、Web サーバに SSL 証明書が必要です。
Creo Elements/Direct Model Manager Web クライアント用の SSL のセットアップ
* 
SSL 接続をセットアップするには、Web サーバに証明書、および公開鍵と秘密鍵のペアが必要です。証明書および鍵ペアを生成する方法の詳細については、OpenSSL を使用した SSL 証明書と鍵の生成をクリックしてください。
1. 次の手順で鍵と証明書をキーストアにロードします。
* 
JDK がマシンにインストールされている必要があります。また、環境変数 JDKDIR がパスに設定されている必要があります。
a. キーストア用のフォルダを作成します。たとえば、<Install_Dir>\etc\ とします。
b. 以前に生成した PKCS12 ファイルをキーストア用のフォルダ <Install_Dir>\etc\ にコピーします。
c. 次のコマンドを使用して、PKCS12 ファイルをキーストアにロードします。
\etc>keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore
以下の値を入力する必要があります。
ロード先キーストアのパスワードを入力します (abc123 など)。
パスワードを再入力します (abc123 など)。
ロード元キーストアのパスワードを入力します (abc123 など)。
2. Creo Elements/Direct Manager Server のインストール場所にある ServiceControllerConfig.xml ファイルを次のように設定します。
<Service enabled="true" java_class="com.osm.services.webservice.JettyServer" name="JettyServer">
<SslEnabled>true</SslEnabled>
<SslPort>8443</SslPort>
<SslmaxIdleTime>30000</SslmaxIdleTime>
<SslKeyStore><Install_Dir>\etc\keystore</SslKeyStore>
<SslPassword>abc123</SslPassword>
<SslKeyPassword>abc123</SslKeyPassword>
<SslTrustPassword>abc123</SslTrustPassword>
</Serrvice>
3. 証明書を追加するには、次の手順を実行します。
Internet Explorer では、「ツール」 > 「インターネットオプション」 > 「コンテンツ」 > 「証明書」 > 「インポート」の順にクリックします。
Mozilla Firefox では、「ツール」 > 「オプション」 > 「詳細」 > 「暗号化」 > 「証明書を表示」 > 「認証局証明書」 > 「インポート」の順にクリックします。
jetty.crt をブラウズして、「OK」をクリックします。
4. https://localhost:8443/mmweb/index.jsp を使用して Creo Elements/Direct Model Manager ブラウザにアクセスします。localhostServiceControllerConfig.xml ファイルで定義されているサーバ名、8443 は SSL ポート番号です。
プロンプトで、このサイトからの証明書を信頼するかどうかを確認します。証明書が自己署名されたもので、Entrust、VeriSign などの信頼できる認証局によって署名されたものでない場合は、この確認が必要です。
OpenSSL を使用した SSL 証明書と鍵の生成
1. http://gnuwin32.sourceforge.net/packages/openssl.htm をクリックして OpenSSL をダウンロードし、バイナリをセットアップおよびインストールします。たとえば、D:\GnuWin32 などにインストールできます。
2. コンピュータに次の環境変数を追加します。
TMP = C:\WINNT\TEMP and TMPDIR = C:\WINNT\TEMP
3. コマンドプロンプトウィンドウで、パスを OpenSSL バイナリフォルダに設定します。以下に例を示します。
Set PATH=%path%;D:\GnuWin32\bin
4. 次のように作業ディレクトリを作成します。
D:>mkdir ssl
D:>cd ssl
5. コマンドプロンプトウィンドウで次のように入力して、jetty.key ファイルに鍵のペア (秘密鍵と公開鍵) を生成します。
D:\ssl>openssl genrsa -des3 -out jetty.key 1024 -config D:\GnuWin32\share\openssl.cnf
この公開鍵と秘密鍵は、Web サーバと Web ブラウザの間で交換される情報を暗号化/復号化する際に使用されます。
* 
各要素の意味は、次のとおりです。
genrsa は、RSA アルゴリズムを使用して秘密鍵と公開鍵のペアを生成します。RSA とは、この暗号化および認証アルゴリズムを最初に公開した Rivest、Shamir、Adleman の頭文字です。
-des は、データ暗号化規格 (DES) アルゴリズムを使用して秘密鍵ファイル jetty.key を暗号化します。
-out jetty.key は、秘密鍵を jetty.key ファイルに保存します。
1024 は、OPENSSL が 1024 ビット長の鍵を生成するようにします。デフォルトの長さは 512 ビットです。
-config D:\GnuWin32\share\openssl.cnf は、設定ファイルを指定します。
プロンプトで、パスフレーズを次のように入力します。
Enter pass phrase for jetty.key: abc123 (例)
Verifying - Enter pass phrase for jetty.key: abc123 (例)
6. 次のように入力して、ルート認証局証明書を作成します。
D:\ssl>openssl req -new -x509 -key jetty.key -out jetty.crt -days 365 -config D:\GnuWin32\share\openssl.cnf
* 
各要素の意味は、次のとおりです。
req は、証明書署名要求 (CSR) または自己署名証明書を生成します。
-new は、証明書の内容の入力を要求します。
-key jetty.key は、秘密鍵と公開鍵を格納する鍵ファイルを指定します。
-x509 は、req が自己署名証明書を生成するようにします。
-days 365 は、自己署名証明書に 365 日間の有効期間を割り当てます。
-out jetty.crt は、自己署名証明書を jetty.crt ファイルに保存します。
-config openssl.cnf は、設定ファイルを指定します。
以下の値を入力する必要があります。
jetty.key のパスフレーズ (abc123 など)
国名 (2 文字コード、インドの場合は IN など)
州または県名 (フルネーム) (Maharashtra など)
地域名 (Pune など)
組織名 (PTC など)
組織単位名 (Creo など)
一般名 (<YourName>.ptc.com など)
電子メールアドレス (yourname@ptc.com など)
7. 新しいキーストアにロードできるよう、生成された鍵と証明書を単一の PKCS12 ファイルに格納する必要があります。証明書は、自己生成されたものか、CSR に対して認証局 (CA) が発行したものです。以下の操作を実行して、生成された鍵と証明書を PKCS12 ファイルに結合する必要があります。
a. 次のように入力して、鍵と証明書を PKCS12 ファイルに変換します。
D:\ssl>openssl pkcs12 -inkey jetty.key -in jetty.crt -export -out jetty.pkcs12
b. プロンプトで、次のようにエクスポートパスワードを入力します。
Enter pass phrase for jetty.key: abc123 (例)
Type the Export Password: abc123 (例)
* 
パスフレーズとエクスポートパスワードは、鍵のペアの生成時 (ステップ 5) に入力したパスワードと同じである必要があります。
8. 証明書署名要求 (CSR) を生成します。信頼できる認証局が署名した証明書を取得するには、CSR を生成して、その他の企業情報とともに認証局に送信する必要があります。コマンドプロンプトウィンドウで次のように入力して、CSR を生成します。
D:\ssl>openssl req -new -key jetty.key -out jetty.csr
信頼できる認証局が証明書に署名している場合は、そのサイトを信頼するかどうかを確認する警告メッセージが表示されません。
* 
jetty Web サーバに付与されているパスワードは OBF で始まるもので、難読化パスワードとして扱われます。メインクラスとして org.mortbay.jetty.security.Password を実行して、パスワードを難読化することができます。これにより、パスワードを不用意に見破られないようにします。
これは役に立ちましたか?