技術情報

カスタマイズ

Alfresco 4.2のMicrosoft Office連携(オンライン編集機能)をSSL化する

Alfresco 4.2のMicrosoft Office連携(オンライン編集)機能について書いていきます。


AlfrescoのMicrosoft Office連携とは?なぜSSL化するのか?


以前、「AlfrescoのMicrosoft Office連携(オンライン編集機能)を試してみよう」という記事でAlfrescoのMicrosoft Office連携について説明しましたので、詳しくはそちらをご覧ください。この設定を行うと、Alfresco上のファイルをMicrosoft Officeで直接開き、編集、保存できるようになります。

この機能は、AlfrescoがSharePointの振りをすることで実現しているのですが、この記事では1つ問題を棚上げしていました。それは、以下のどちらかを行わないとMicrosoft Officeでファイルを開けないというところで、後者についてしか説明していませんでした。
  • 通信をSSL化する
  • クライアントPCのレジストリをいじる
前者の方がより好ましい解決方法ですので、以下ではこのSSL化の方法について説明していきます。


どこをSSL化するのか?


これは、Microsoft OfficeとAlfresco間の接続をSSL化するということになります。AlfrescoはVTIモジュールと呼ばれるSharePointのフリをするためのモジュールを用意しており、Microsoft Officeとの通信はこのVTIモジュールが担当します。VTIモジュールは、Alfrescoサーバ上のjettyにホストされ、デフォルト7070番で通信します(もちろん変更可能です)。SSL化すべきはこのVTIモジュールということです。


SSLの設定を行う


以下、具体的な手順を説明するのですが、まずはMicrosoft Office連携機能をインストールしましょう。手順は「AlfrescoのMicrosoft Office連携(オンライン編集機能)を試してみよう」を参考にしてください。

準備ができたら早速SSLの設定を行っていきましょう。今回はテスト用の自己署名証明書を作成しますが、実運用に向けては正統な証明書を準備する必要があります。

1. 自己署名証明書を作成する

まずはSSL用の自己署名証明書(いわゆるオレオレ証明書)を作成します。以下のコマンドを実行します(以下はWindowsでのものですが、Linuxも同様です)。キーストアのパスやパスワードは適宜変更してください。
> %JAVA_HOME%/bin/keytool.exe -genkeypair -alias alfresco -keystore D:/alfresco/alf_data/keystore/vti.ssl.keystore -storepass changeit -keypass changeit  -keyalg RSA -validity 365 -keysize 2048 -storetype JKS


2. VTIの設定を変更する

続いて、VTIモジュールの設定を変更します。以下の2つのファイルを弄る必要があります。まずはalfresco-global.propertiesに以下の3プロパティを設定します。vti.server.ssl.keystoreは先ほど作成したキーストアのパス、vti.server.ssl.passwordは先ほど指定したパスワードを設定します。

<tomcat_dir>/shared/classes/alfresco-global.properties
vti.server.external.protocol=https
vti.server.ssl.keystore=D:/alfresco/alf_data/keystore/vti.ssl.keystore
vti.server.ssl.password=changeit

続いて、vti-context.xmlというVTIモジュールの定義ファイルを修正します。vtiServerConnectorのbean定義が2つあるので、non-SSL用をコメントアウトし、SSL用のものを有効にします。

<tomcat_dir>/webapps/alfresco/WEB-INF/classes/alfresco/module/org.alfresco.module.vti/context/vti-context.xml
<!-- Use this Connector for plain text (non-SSL) communications -->
<!--
<bean id="vtiServerConnector" class="org.mortbay.jetty.bio.SocketConnector">
    <property name="port">
         <value>${vti.server.port}</value>
    </property>
    <property name="headerBufferSize">
         <value>32768</value>
    </property>
</bean>
-->
<!-- Use this Connector instead for SSL communications -->
<!-- You will need to set the location of the KeyStore holding your -->
<!--  server certificate, along with the KeyStore password -->
<!-- You should also update the vti.server.protocol property to https -->
<bean id="vtiServerConnector" class="org.mortbay.jetty.security.SslSocketConnector">
    <property name="port">
         <value>${vti.server.port}</value>
    </property>
    <property name="headerBufferSize">
         <value>32768</value>
    </property>
    <property name="maxIdleTime">
         <value>30000</value>
    </property>
    <property name="keystore">
         <value>${vti.server.ssl.keystore}</value>
    </property>
    <property name="keyPassword">
         <value>${vti.server.ssl.password}</value>
    </property>
    <property name="password">
         <value>${vti.server.ssl.password}</value>
    </property>
    <property name="keystoreType">
         <value>JCEKS</value>
    </property>
</bean>


早速試してみよう


以上の設定が終わったら、Alfrescoを再起動して http://localhost:8080/share/ にアクセスしてみましょう。もしレジストリを非SSLでの認証を許可するために弄ってある人は、元に戻してPCを再起動しておきます。あとは「AlfrescoのMicrosoft Office連携(オンライン編集機能)を試してみよう」の記事にある手順でオンライン編集を実行し、「このWebサーバーへのアクセスは規定で無効になっています。...」のダイアログが表示されずにMicrosoft Officeでファイルを開ければ設定成功です。

もちろん本番環境で利用する際は自己署名証明書では問題なので、適切な証明書を適用する必要があります。また、更に詳しい説明は Alfresco Documentation を参照してください。

是非VTIモジュールのSSL化に挑戦し、オンライン編集を快適にしましょう。

※ 本記事は aegif Labo Blog の投稿から引用しています。

製品の導入や詳細に関してはお気軽にお問い合わせください

お問い合わせはこちら

電話 : 03-5771-1566 平日 11:00 - 15:00