メールでExcelをファイル添付したやつだけ送信できません

メールでExcelをファイル添付したやつだけ送信できません

すっかり梅雨入りして、熱いような、寒いような、ムシムシするような、とにかくイヤーな季節になってきましたね。

ところで、今日は冒頭のタイトルにあげたような内容で相談を受けるところから調査が始まってしまいました。

Read More

Tags, , , ,

AlfrescoとMS Officeを連携させる(SSL証明書配置編)

alfrescoをSharePointの互換サーバーとして利用し、ファイルをオンライン編集(サーバー上のファイルをOffcieなどで直接編集し保存する方法)できるようにするためには、SSL証明書を格納したキーストアファイルを作成し、alfrescoに配置する必要があります。過去の記事にも作業の概略を書きましたが、後で見返したときに記述があいまいで作業に支障をきたしたため、今回は作業内容を具体的に記録をしておきます。

証明書発行機関から証明書をもらう

証明書要求ファイルを証明書発行機関に送付し証明書をもらいます。

証明書は、証明書本体、証明書中間ファイル、証明書と中間ファイルを結合したpkcs7形式のファイルをもらいましたので、以下の操作を行いキーストアに格納します。このとき、証明書要求ファイルを作成するのに使用したプライベートキーファイルをpkcs12形式のファイルを作る際にもう一度使用します。

※pkcs7形式のファイルがもらえない場合は、opensslを使って証明書ファイルと中間ファイルからpkcs12形式ファイルを作成する必要がありますので、次項の操作とは別の方法を実施する必要があります。

pkcs7形式をpkcs12形式に変換する

pkcs7形式のファイルはそのままではkeystoreに格納できませんので、まずpkcs12形式に変換します。

pkcs12形式の証明書情報をkeystoreファイルに取り込む

keytoolを使用して、pkcs12形式に変換した証明書情報を格納します。

alfrescoのキーストアにコピー

※キーストアのパスは、Alfrescoをインストールした場所に依存するので、適宜読み替えが必要です。

keystoreファイルにシンボリックリンクを張る

ファイルを直接上書きコピーしても構いませんが、キーストアファイルの生成手順が間違っていると、Alfrescoが動作しないことがあります。この場合、元のキーストアファイルに一旦戻して作業をやり直す必要がありますので、keystoreファイルを直接上書きすることは避け、毎回異なるファイル名で用意してシンボリックリンクを張るようにします。

alfresco再起動

これでAlfrescoにログインし、Officeのファイルをオンライン編集できれば作業は完了です。

Tags, , , , ,

SSLの更新作業

最近、ウェブサイトのSSL化がすすんでおり、無料のSSL証明書提供サービスが提供されるなど、暗号化通信が必須とされる時代になってきています。

特にウェブショップなどの個人情報を不特定多数に入力してもらう必要があるサイトを運用する場合、SSLを利用しないで運用することはあり得ません。

一方で、SSLの設定は証明書の期限がありますので、短くて数カ月、長い場合は数年のサイクルで更新をかけていく必要があります。

ところが、人間忘れっぽいもので、たまにしかやらない作業は大まかなことは覚えていても、細かいところはあいまいになりがちです。

ということで、今回久しぶりに証明書の更新作業を行ったわけですが、例にもれず詳細がうすぼんやりとしか思い出せなくなっていました。いろいろなサイトに手順の解説がありますが自分のケースに合わせて調べまわるのが手間なので、今更ですが手順をここに表記します。

1.opensslなどの証明書作成アプリを使いcsrを作成する。

2. 証明書発行機関にcsrファイルを提出し、証明書を受け取る。

サービスによっては、1と2をやるかわりに、ウェブサイトのフォームに必要事項を記入すると(もちろん対価を支払うと)証明書を送ってくれるところもあります。

送られてくる証明書の内訳は、たいていは証明書1通であることが多いですが、私の利用しているKingSSLは、証明書、中間証明書、証明書と中間証明書をまとめたPKCS7形式の証明書の3通を送ってきました。

 ※Apacheの証明書設定は、証明書、中間証明書を使用し、AlfrescoではPKCS7形式とプライベートキーを使ってPKCS12形式を生成するのに使用します。

これらのファイルは、好きなファイル名を付けて保存してもいいのですが、あとで分かるように以下のように名前を付けて保存します。

3. 受け取った証明書を保存し、サーバーに保管する。

ubuntuの場合、証明書の保管先は /etc/ssl/privateなので、ここに受け取ったファイルを保存します。なお、このフォルダを操作をするときはルート権限のあるユーザーでログインしておく必要があります。

保存に際して通常は、同一名のファイルをそれぞれ用意して上書き保存すれば済みますが、ここで一工夫です。

例えば、証明書のファイル名をつけ間違えていた場合など、いったん前の状態に戻て作業をやり直すことが考えられます。これを恐れて更新前のファイルと別の名前を付けると、証明書を利用するすべてのサービスで設定変更が発生します。この方法は間違いなく作業が漏れますのでいただけませんし、やり直しをするときはサービスの停止期間がのびてストレスがたまりまくりになるので、この方法は働き方改悪です。

ということで、/etc/ssl/private内に年次別のフォルダを作成し、ここに各ファイルを保存し、private内にシンボリックリンクを張ります。

一度に操作すれば済むように、以下のようにシェルスクリプトを作ります。

4. apacheの証明書参照先変更

ファイルをシンボリックリンクの張り直しで更新するので、特に必要なし。

 

 

Tags, , , , , ,

WicketでTableを描画するクラスを作ったけど遅い

事務系のサーバーサイドアプリは、一覧表を多く使うため、アプリを開発するとたくさんの表を作ることが予想されます。

いま手掛けているclearfybusiness プロジェクトでも、表が多く出てきます。

開発作業を簡単にするため、描画用のモジュールにデータ取得用のSQL構文を渡すと、自動的にカラムを作成した上でデータを表示してくれると、後々楽が出来そうです。

ということで、wicketの解説をよみながら、ListViewを使いモジュールを作りました。

ところが、一応機能はしますが動きが遅い…

たった30行ほどの描画に20秒もかかります。

よく調べると、Wicketの拡張ライブラリにDefaultDataTableというクラスがあったので、これをつかうと…

おお、速い。3秒で表示する。

ということで、闇雲に実装しないで一度調べた方がいいなと思いました。

alfrescoとMS officeの連携で注意すること

alfrescoに保存したワードやエクセルのファイルは、オフライン編集でMS officeを使って編集出来ます。

ところが、インストール直後はsslの設定をしないとこの機能は使えません。

設定はJavaのkeytoolを使ってsslのサイト証明書をキーストアに格納し、キーストアのパスをalfrescoに書き込みます。

alfrescoのキーストア格納用フォルダには、いくつかのキーストアが保存されています。このなかのvti.ssl.keystoreというファイルがofficeにより参照される証明書の保存先になります。

このvti.ssl.keystoreファイルを新たに用意したキーストアファイルで上書きするか、設定ファイル中のファイルパスを新しいキーストアファイルのパスに変更する必要があります。

誤って違うキーストアファイルを書き換えたりすると、上手くいきませんので注意が必要です。

私は、最初にこの設定を間違えており、officeからファイルがオンラインで開けないばかりか、solrの連携ができていませんでした。

この度ようやく問題が解消したので備忘のため記録しておきます。

Tags