SSL/HTTPキーの概要
インストール作業中に、PaperCutは自己署名鍵/証明書を生成しホスト・マシン名に対して発行します。
システムがポート「9192」上でHTTPSを経由してアクセスされる場合、この鍵がデフォルトで使用されます。
デフォルトのSSL証明書のセキュリティは優れていますが、自己署名証明書を使用する場合下記の2つの欠点があります:
1.ユーザが完全修飾ドメイン名を使用してHTTPSへアクセスする場合、ブラウザは「ドメイン不一致の警告」を表示します。
この警告を回避するためには、マシンの完全修飾ドメイン名を使用して自己証明書を再作成する必要があります。
詳細は後述する「自己署名証明書の再作成」を参照してください。
2.ブラウザに証明書が信頼できる認証局によって署名されていない警告が表示されます。
この警告に対処するためには、信頼できる認証局により署名された証明書を取得する必要があります。
詳細は後述する「カスタム署名済みSSLキーの使用」を参照してください。
すでに信頼済みの証明書がある場合は、「既存のSSLキーのインポート」を参照してください。
自己署名証明書の再作成
ブラウザのドメイン不一致警告を表示しないように、異なったホスト名のキー/証明書(キーストア・ファイルに格納)の再作成に、
「create-ssl-keystore」ツールを使用することができます。
コマンド使用例:
cd [app-path]/server/bin/win
create-ssl-keystore -f "myserver.fullname.com"
さらに詳細な情報は、「--help」コマンドライン・オプションを利用してください。
利用するコマンド: create-ssl-keystore [-f] [-k FILE] [SYSTEM_NAME]
-f:強制。既存のキーストアを上書きします。
-k FILE: キーストアの場所を定義。
指定しない場合、キーストアはデフォルトの場所に保存されます。(server/data/default-ssl-keystore).
SYSTEM_NAME:キーストアを生成に使用するコンピュータ/サーバの名前。
指定しない場合、現在使用しているコンピュータ名が使用されます。
カスタム署名済みSSLキーの使用
大きな組織(総合大学や大企業)では、Internet Explorer, Mozilla Firefox, Safari, Chrome など
一般でよく利用されているブラウザで認識される商用の証明機関(CA)により署名された独自のSSLキーの使用が要望されるかもしれません。
Windows環境の場合リストは、
<コントロール パネル> - <インターネット・オプション> - <コンテンツ> - [発行元]ボタン - <信頼されたルート証明機関> から確認することができます。
大規模な組織によっては、手動または自動ですべてのユーザのWebブラウザにインストールされるルート証明書の方法により、
ユーザのWebブラウザで認識される独自の認証局を運用している場合があります。
署名済み証明書の利点は、ブラウザの警告「このウェブサイトで提示されたセキュリティ証明書は信頼された証明機関によって発行されませんでした。」を表示しないようにできることです。
PaperCut アプリケーション・サーバのドメイン名の署名済みSSLキーと証明書をすでに所持している場合は、「既存のSSLキーのインポート」を参照してください。
独自のSSLキーを作成してそれを商用もしくは組織内の認証局により署名されている場合は、ツール「keytool」を使用して次のディレクトに適用することができます:
[app-path]/runtime/jre/bin
1.コマンド・プロンプトを起動し、ディレクトリ「[app-path]/runtime/jre/bin」へ移動してください。
このディレクトリ内に既存ファイル「my-ssl-keystore」がある場合は、この時点で削除してください。
cd [app-path]/server/bin/win
2.SSLキーを生成する下記のコマンドを入力してください:
keytool -keystore [app-path]\server\custom\my-ssl-keystore -alias jetty -genkeypair -keyalg RSA
<注意>
このプロセスにより「my-ssl-keystore」ファイルを作成します。このファイルは絶対に削除しないでください。
後ほど公開鍵を追加する時にこのファイルが必要になります。
弊社では「my-ssl-keystore」のコピーを作成し、安全な場所に保管しておくことを推奨します。
「my-ssl-keystore」を失くしたり変更した場合、証明書の再発行が必要なり、SSLプロバイダに費用を支払うことになります。
キーストアのパスワードはそれほど重要ではないため、”password” もしくはその他の単純なパスワードを選択してください。
後ほどパスワードの入力が求められたら同じキー・パスワードを入力してください。
注記: 組織によってはデフォルトの1024ビットよりも大きいキー・サイズが必要な場合があります。
その場合、コマンド・ラインの末尾に「-keysize 2048」もしくは「-keysize 4096」を追加してください。
一連の質問が尋ねられます。PaperCutアプリケーション・サーバの正確な完全修飾ドメイン名を入力してください。
サーバ名はユーザがPaperCutのWebインタフェースへアクセスするためにブラウザへ入力するため正確なものでなければなりません。
例: printing.myschool.edu 認証機関の要件に応じて、いくつか他のフィールドの入力が必要な場合があります。
Enter keystore password: password
What is your first and last name?
[Unknown]: printing.myschool.edu
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
What is the name of your City or Locality?
[Unknown]:
What is the name of your State or Province?
[Unknown]:
What is the two-letter country code for this unit?
[Unknown]:
Is CN=printing.myschool.edu, OU=Unknown, O=Unknown,
L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes
Enter key password for <jetty>
(RETURN if same as keystore password): password
3.認証局により発行された証明書の新しいSSLキーを準備してください:
keytool -certreq -alias jetty -keystore [app-path]\server\custom\my-ssl-keystore -file [app-path]\server\custom\jetty.csr
上記コマンドの結果として生成される「jetty.csr」は、上記に記載した商用認証機関のオンライン注文フォームに貼りつけたり、組織の独自認証局に渡すことができます。
認証プロセスが完了すると、機関から機関のWebサイトからダウンロードできる証証書ファイルを提供されます。
通常ファイル名の最後は「.crt」「.cer」「.cert」です。ファイルの内容は下記のようになります:
-----証明書の始め-----
MIIDLTCCApagAwIBAgIQJc/MOTjAW0HrPI/4rGtDCDANBgkqhkiG9w0BAQUFADCB
hzELMAkGA1UEBhMCWkExIjAgBgNVBAgTGUZPUiBURVNUSU5HIFBVUlBPU0VTIE9O
... more here ...
Awjhfz9EfxN2l1UYP15xZZyNO4DO3X/LliCG9pdFf4hUHl8tRnhQBvRR1F0v9UHB
PC6L9jNjMbQUoQ9NG/S8Nn7ZcSHNy+P53ntIBaEfTv7+qvXNWvSb5wj4pd05wGF1
Bw==
-----証明書の終わり-----
ファイルを「jetty.crt」として保存してください。
4.新しく取得した証明書を利用できるようにするには、認証局の「ルート証明書」をインポートする必要があります。
PaperCutは予め複数のルート証明書がインストールされています。インストール済みのルート証明書は次のコマンドで一覧表示することができます。
([app-path]/runtime/jre/bin)
keytool -keystore ../lib/security/cacerts -storepass changeit -list
最後にオプション「-v」 を追加するとさらに詳細な(有効期限など)リストが取得できます。
リストにあなたの認証局が表示されていない場合や最近新しいルート証明書の使用が開始されたと通知された場合は、
まず新しい自身の証明書をインポートする前に認証局のルート証明書をキーストアにインポートする必要があります。
CAのルート証明書は通常CAのWebサイトからダウンロード可能です。ファイル名は末尾が「.pem」もしくは「.crt」です。
ファイルはCA名がわかる名前をつけて保存してください。
例: globaltrust.pem
コマンドを使用して、CAの名前を示しているエイリアスを指定しルート証明書をインポートします。
(コマンドは1行ですべてを入力してください。)
keytool -keystore [app-path]\server\custom\my-ssl-keystore -importcert -alias globaltrust -file globaltrust.pem
この証明書を信頼するかどうか尋ねられたら「yes」と回答してください:
Trust this certificate? [no]: yes
認証局によっては、追加の「中間証明書」を提供する場合があります。中間証明書はルート証明書と同じ方法でインポートしてください。
5.先ほど「jetty.crt」として保存した独自の証明書をインポートします。
(コマンドは1行ですべてを入力してください。)
keytool -keystore [app-path]\server\custom\my-ssl-keystore -import -alias jetty -file jetty.crt –trustcacerts
<注意>
上記コマンドの「my-ssl-keystore」はStep2 で作成したオリジナルの「my-ssl-keystore」です。
6.新しいキーストア・ファイル「my-ssl-keystore」の準備ができました。ディレクト「[app-path]/server/custom」へ移動する必要があります。
キーストア・ファイルのインストール方法は「2-4 キーストアのインストール」を参照してください。新しいSSL証明書の提供が開始できます。
既存のSSLキーのインポート
既存のSSLキーと証明書がある場合、PaperCut のキーストアにインポートすることができます。
既存の署名キーを使用する理由としては下記があります:
・前述した「keytool」を使用する以外の方法を使用してPaperCut アプリケーション・サーバで使用するためにSSLキーを取得している場合。
結果として、Windows環境の場合は、Windows証明書ストア もしくはいわゆる「PCKS#12」ファイル(*.p12/*.pfx)のどちらかに保存される添付された秘密鍵付きの証明書があります。
Linux環境の場合は、'PEM エンコード' キーと証明書ファイルがあります。
・IIS(Windows), Apache(Linux) もしくはその他のWebサーバでイントラネットが運用されている組織では、それらのWebサーバで使用されている証明書をPaperCutでも使用することができます。
注記: イントラネット・サーバとPaperCutサーバが同じサーバ上(別のポート)で動作している限り、イントラネット・サーバのサーバ名はPaperCut アプリケーション・サーバと異なります。
(例:イントラネットのアドレスが「internal.myschool.edu」 の場合、PaperCut アプリケーション・サーバは「printing.myschool.edu」へ到達することができます。)
このケースでは、ドメイン「myschool.edu」の任意のサブドメインとして発行された、いわゆるワイルド・カード証明書である場合、証明書は単に再利用することができます。
Windows環境でWindows証明書ストアに鍵付きの証明書がある場合は、下記の方法でエクスポートしてください:
1.<コントロール パネル> - <インターネット オプション> を選択してください。
2.<コンテンツ> タブを選択し、[証明書] ボタンをクリックしてください。
3.「証明書」ダイアログの<個人> タブを選択し、[エクスポート]ボタンをクリックしてください。
4.「証明書のエクスポート ウィザード」画面が表示されます。[次へ]をクリックしてください。
5.「秘密キーのエクスポート」画面から「はい、秘密キーをエクスポートします」を選択し、[次へ]をクリックしてください。
6.「エクスポート ファイル形式」画面が表示されます。PFXファイルの場合、下記の通り設定してください。
・チェックを入れる:証明のパスにある証明書を可能であればすべて含む
・チェック無し:正しくエクスポートされたときは秘密キーを削除する
・チェック無し:すべての拡張プロパティをエクスポートする
7.「パスワード」画面が表示されます。PFXファイルのパスワードを入力してください。このパスワードは一時的に使用するだけです。
8.エクスポートするファイル名を指定します。拡張子「.pfx」を必ずつけてファイル名をつけてください。(このファイルは一時的なファイルです。後ほど必ず削除してください。)
9.完了画面が表示されます。[完了]ボタンをクリックしてください。
Windows環境でIIS サーバ証明書ストアに鍵好きの証明書がある場合は、下記の方法でエクスポートしてください:
1.Windowsの管理コンソールを起動し、IISサーバを選択して「サーバー証明書」を開いてください。
2.エクスポートする証明書を右クリックし、ショートカット・メニューから「エクスポート」を選択してください。
3.ファイル名を指定します。拡張子「.pfx」を必ずつけてファイル名をつけてください。(このファイルは一時的なファイルです。後ほど必ず削除してください。)
4.「パスワード」画面が表示されます。PFXファイルのパスワードを入力してください。このパスワードは一時的に使用するだけです。
5.[OK] をクリックしてください。
Linux環境で鍵と証明書が別の「PEM形式にエンコード化」されたファイルにある場合:
・「OpenSSL」ツール(多くのLinuxディストリビューションに付属されています)を使用して、下記のコマンドを使用して両方のファイルを PKCS#12 ファイルに結合します
(コマンドは1行ですべてを入力してください)
openssl pkcs12 -export -inkey <key file> -in <certificate file> -out <pfx file>
<pfx file>はターゲットとなる「PKCS#12」ファイルです。ファイル名は拡張子「.pfx」を必ず選択してください。
(このファイルは一時的です。後ほど必ず削除してください。)
エクスポート完了後、証明書をPaperCut キーストアへインポートします:
1.コマンド・プロンプトを開き、下記のディレクトリへ移動してください。
cd c:\Program Files\PaperCut NG\
2.下記のコマンドを入力してください。(コマンドは1行ですべてを入力してください。)
"runtime/jre/bin/java" -classpath server/lib/jetty-6.1.22.jar
org.mortbay.jetty.security.PKCS12Import "<pfx file>"
server/custom/my-ssl-keystore
<pfx file> は証明書とキーが含まれる「.pfx」もしくは「.p12」ファイルに置き換えてください。
Jetty のバージョン番号 (6.1.22) は随時変更されます。
エラー「NoClassDefFoundError」が表示されたらディレクトリ「[app-path]/server/lib/」の「jetty-*.jar」ファイルを確認し、コマンドを修正してください。
3.キーストアのパスフレーズ(input keystore passphrase) が求められます。ファイル保存時に設定したパスワードを入力してください。
4.キーストア パスフレーズのアウトプット(output keystore passphrase) が求められます。新しいパスワードを入力してください。(例:password)
コマンド入力後に次のディレクトリに新しいファイルが生成されます: [app-path]/server/custom/my-ssl-keystore
このファイルが証明書とキーが含まれるキーストアです。
以上でキーストア・ファイルが生成できました。次章「キーストアのインストール」を参考に新しいSSL証明書のをインストールしてください。
キーストアのインストール
前節ではキーストア・ファイルの生成方法について説明しました。
「カスタム署名済みSSLキーの使用」では認証局から新しい証明書を取得しキーストアに置く方法を、
「既存のSSLキーのインポート」では独自の「自己署名」証明書を生成しキーストアへ置く方法を説明しています。
この節ではキーストアをインストールする方法を説明します。
インストール後、PaperCutは新しい証明書の提供が開始できます。
PaperCut アプリケーション・サーバで新しいキー/証明書を使用するための設定方法は次の通りです:
1.PaperCut アプリケーション・サーバが実行されているサーバ上に署名済みキーストアをコピーします。
コピーする場所: [app-path]/server/custom/my-ssl-keystore
2.テキスト・エディタからserver.propertiesを開いてください。[app-path]/server/server.properties
3.「SSL/HTTP Configuration」の行を表示してください。
4.「server.ssl」から始まる行の先頭の#(ハッシュ)記号を削除してください。
5.キーストアが保存されている場所を指定してください。またキーストアとキーのパスワードを指定してください。
server.ssl.keystore=custom/my-ssl-keystore
server.ssl.keystore-password=password
server.ssl.key-password=password
注記: Mac OSの場合、キーストアのパスはフルパスで指定してください。
例:/Applications/PaperCut NG/server/custom/my-ssl-keystore
6.設定が完了したら上書き保存してテキスト・エディタを終了してください。
7.サービス「PaperCut Application Server」を再起動し、正常に動作しているかを確認してください。
サーバの起動に失敗した場合、エラーが「server.log」に記載されます。エラーを確認してください。
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。