confディレクトリの構成は次の通りです。
conf |-- license-key |-- copperd.properties |-- logging.properties |-- password.txt |-- access.txt `-- profiles |-- default.properties `-- fonts |-- fonts.xml |-- truetype |-- warrays |-- afms |-- cmaps `-- encodings
confディレクトリの直下には次の設定ファイルが収められています。
また、profilesディレクトリ内には次のファイルがあります。
copperd.propertiesはCopper PDFサーバー(copperd)の動作に関する設定です。 この設定の変更を反映するにはCopper PDFサーバーの再起動が必要です。
ファイルの形式は Javaのプロパティファイル です。 各行に 名前=値 の形式で記述してください。= 記号、改行はそれぞれ\= \nで記述します。 \の次の改行と空白は無視されます。
例えば以下の場合、key1 の値は a=b であり、key2 の値は a, b, c, d, e, f です。
key1 = a\=b key2 = a, b, c,\ d, e, f
propertiesファイルには、日本語のカナ、漢字等をそのまま記述できません。 日本語を含むpropertiesファイルは、Javaに付属の native2ascii ツールにより、マルチバイト文字をエスケープした形式に変換してください。
各プロパティの説明は以下の通りです。
プロパティ | 説明 |
---|---|
jp.cssj.cssjd.port | サービスポートです。 このポート番号がプログラムインターフェースの接続先のポート番号となります。 |
jp.cssj.cssjd.control-port | 制御用ポートです。サーバーの状態の取得や停止のためにこのポートを使います。 このポートへのlocalhost以外からのアクセスはブロックされます。 |
jp.cssj.cssjd.control-command | 制御用コマンドです。制御用ポートからアクセスする場合の「合言葉」のようなものです。通常は変更する必要はありません。 |
jp.cssj.cssjd.timeout | 接続タイムアウト(秒数)です。 プログラムインターフェースとの間で指定された時間データがやりとりされなかった場合、接続を切断します。 |
jp.cssj.cssjd.minThreads | 最小スレッド数です。 プログラムインターフェースの接続を待ち受けるために準備しておく最小限のスレッド数です。 高負荷が予想される状況では大きめの値を設定しておくと処理が効率化しますが、 使用するメモリは増大します。 |
jp.cssj.cssjd.maxThreads | 最大スレッド数です。 copperdが同時に処理できるプログラムインターフェースからの接続の最大数です。 高負荷が予想され、なおかつシステムのリソースに余裕がある場合は大きな値を設定するのが有効ですが、 リソースに余裕がない環境では、大きな値を設定することで逆に非効率になることがあります。 |
jp.cssj.cssjd.backlog | 接続のバックログ数です。 未処理の接続がこの数を超えた場合、処理に空きができるまで以降の接続は拒否します。 |
jp.cssj.cssjd.http.port | HTTPポート番号です。 指定したポートで、HTTP/RESTインターフェースを起動します2.1.0。 |
jp.cssj.cssjd.https.port | SSL(HTTPS)ポート番号です。 指定したポートで、SSLでHTTP/RESTインターフェースを起動します2.1.0。 |
jp.cssj.cssjd.jk.port | AJP13ポート番号です。 指定したポートで、AJP13でHTTP/RESTインターフェースを起動します2.1.2。 Apacheのmod_jkまたはmod_proxyによるAJP13での接続が可能になります。 |
jp.cssj.cssjd.https.keyStore | SSLに使用するキーストアのファイルパスです2.1.0。 |
jp.cssj.cssjd.https.keyPassword | SSLに使用するキーのPKCS12パスワードです2.1.0。 |
jp.cssj.cssjd.https.keyStorePassword | SSLに使用するキーストアのパスワードです2.1.0。 |
jp.cssj.cssjd.tls.port | TLSポート番号です。 指定したポートで、TLSによるプログラムインターフェースを起動します3.0.0。 |
jp.cssj.cssjd.tls.keyStore | TLSに使用するキーストアのファイルパスです3.0.0。 |
jp.cssj.cssjd.tls.keyPassword | TLSに使用するキーのPKCS12パスワードです3.0.0。 |
jp.cssj.cssjd.tls.keyStorePassword | TLSに使用するキーストアのパスワードです3.0.0。 |
Copper PDFは高速な独自の通信プロトコル(CTIP)の他、 Copper PDF 2.1.0からはHTTPによる接続をサポートしました。 さらに、SSL(HTTPS)による暗号化された接続も可能です。
Copper PDF 3.0.0からはTLSによる、暗号化された高速な接続をサポートしました。
SSLを有効にするためには、キーペアを用意してください。 以下はOpenSSLとJDK付属のkeytoolを使用する方法です。
以下のコマンドで秘密鍵とCSR(証明書署名要求)を生成してください。 パスフレーズは任意に設定して構いません。
openssl genrsa -des3 -out ssl.key 1024
openssl req -new -key ssl.key -out ssl.csr
サイト証明書は、前に生成したCSRを認証局に送付することで入手することができますが、 テストや単に通信の暗号化の目的であれば自己署名によるサイト証明書を使用することができます。 以下のコマンドでサイト証明書を生成してください。
openssl x509 -in ssl.csr -out ssl.crt -req -signkey ssl.key -days 3650
秘密鍵とサイト証明書を利用するには、JDK付属のkeytoolによって管理されるキーストアファイルに格納する必要があります。 最初に、以下のコマンドで秘密鍵とサイト証明書のペアをPKCS12形式のファイルにまとめてください。 このとき、設定するパスワードがPKCS12パスワードです。
openssl pkcs12 -inkey ssl.key -in ssl.crt -export -out ssl.pkcs12
次に、PKCS12ファイルをキーストアに格納してください、このとき、キーストアのパスワードを設定します。
keytool -importkeystore -srckeystore ssl.pkcs12 -srcstoretype PKCS12 -destkeystore keystore
以上の手順で生成したキーをCopper PDFサーバーのSSL/TLS通信に使用する場合は、 設定ファイルまたはコマンドラインオプションでキーストアファイルのファイルパスと、PKCS12パスワード、キーストアのパスワードを設定してください。
Copper PDF 2.1.2からは、Apacheからmod_proxy_ajpまたはmod_jkによる接続ができるように、AJP13をサポートしました。 AJP13により、Apacheにより公開されているドメイン・ポート上にCopper PDFのHTTP/RESTインターフェースへの窓口を設けることができます。 また、SSL通信にApacheを利用することができます。
AJP13によるマウントポイントは、任意のパスに設定することができます。 以下の例は、Copper PDFがlocalhostの8095ポートでAJP13を起動している場合に、 /cti/パスでHTTP/RESTインターフェースを使用可能にするApache側の設定例です。
<Proxy *> Order deny,allow Allow from all </Proxy> <Location /cti/> ProxyPass ajp://127.0.0.1:8095/ </Location>
JkWorkerProperty worker.list=copper JkWorkerProperty worker.copper.type=ajp13 JkWorkerProperty worker.copper.host=127.0.0.1 JkWorkerProperty worker.copper.port=8095 JkLogFile /var/log/httpd/jk.log JkLogLevel info JkMount /cti/* copper
logging.propertiesはCopper PDFサーバーのログ設定ファイルです。 この設定の変更を反映するにはCopper PDFサーバーの再起動が必要です。 ログ設定ファイルは java.util.loggingのログプロパティファイル の形式で記述してください。
# Logging levels by categories. jp.cssj.handlers = jp.cssj.logging.FileHandler, \ java.util.logging.ConsoleHandler jp.cssj.level = INFO # File java.util.logging.FileHandler.level = INFO java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.FileHandler.encoding = UTF-8 # Console java.util.logging.ConsoleHandler.level = OFF java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Copper PDFには日付でログをローテーションするログハンドラ (jp.cssj.logging.FileHandler) が用意されています。 ハンドラのプロパティは次のとおりです。
名前 | デフォルト | 説明 |
---|---|---|
directory | copperdの標準のlogsディレクトリ | ログの出力先ディレクトリ |
prefix | copperd. | ログファイル名の先頭の文字列 |
suffix | .log | ログファイル名の末尾の文字列 |
level | ALL | ログレベル |
filter | N/A | ログのフィルタ |
formatter | java.util.logging.SimpleFormatter | ログのフォーマッタ |
encoding | UTF-8 | ログファイルのキャラクタエンコーディング |
access.txtはIPアドレスでアクセスできるクライアントを制限する設定です。 このファイルの変更は自動的に検出されるため、変更後にCopper PDFサーバーを再起動する必要はありません。 各行のルールを
[allow|deny] IPアドレス
という形式で記述します。 IPアドレスはIPv4, IPv6のどちらの形式も使用可能です。
allowは指定されたアドレスのアクセスを許可し、denyはアクセスを拒否するルールです。 クライアントからのアクセスがあった場合は、先頭から順に検索し、最初に一致したルールが適用されます。
IPアドレスを * にすると、全てのクライアントにルールを適用します。
allow 127.0.0.1 deny *
profilesディレクトリ内の設定は、Copper PDFの出力結果に関係するものです。 デフォルトの入出力プロパティやフォントの情報が含まれます。
Linux版のcopperdおよび、 Windows版の各種ツールはconfディレクトリ内のprofilesディレクトリの設定を使用しますが、 Linux版の copper copper-webapp は初回実行時に実行ユーザーのホームディレクトリに.copperという名前のディレクトリをつくり、 そこにprofilesディレクトリを作成します。 copper, copper-webappを使用する各ユーザーはホームディレクトリの設定を編集する必要があります。
copper-webappの設定ファイルは、初回実行時に /WEB-INF/client.propertiesから各ユーザーの$HOME/.copper/webapp.proprtiesにコピーされます。 2.0.1
default.propertiesはデフォルトの入出力プロパティを設定するものです。 入出力プロパティはcopperコマンドの引数やcopper-webappの設定ウィンドウ、 プログラムインターフェースによって上書きされます。 default.propertiesは、その初期値をあらかじめ設定するものです。
default.propertiesの変更は実行中のCopper PDFサーバーにより自動的に検知されますので、 変更の度にCopper PDFサーバーを再起動する必要はありません。
ファイルの形式は Javaのプロパティファイル です。 各プロパティは入出力プロパティの節で解説されていますが、 1つだけsystem.fontsという特別なプロパティがあります。 system.fontsは後で次に説明するフォント設定ファイルをdefault.propertiesファイルからの相対パスで指定したものです。
フォント関連の設定です。詳細はフォントの設定の章で解説します。