AlfrescoのHTTPS設定(Let's Encrypt証明書の設定)

proxyサーバー経由で接続すると、SELF_SIGNED_CERT_IN_CHAINの内部エラーが発生して正しくポートフォワードできない現象が発生していた。

https, http両対応のproxyサーバー(ポートフォワード)

直接HTTPS経由でAlfrescoサイトに接続すると、Let's Encryptで発行した証明書が設定されてないので、"保護された通信"になってないのが原因のようだった。

まず、Let's Encryptで発行されたfullchain.pemとprivkey.pemからキーストアファイルを作成する必要がある。コマンドを実行して、パスワードを設定すると中間ファイルfullchain_and_key.p12が生成される。

>sudo openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat
Enter Export Password:
Verifying - Enter Export Password:

次にこの中間ファイルから、目的の証明書ファイルを以下のコマンドで生成する。(証明書ファイル名はMyDSKeyStore.jks)

> sudo keytool -importkeystore -deststorepass pw999 -destkeypass pw999 -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass [上記で設定したパスワード] -alias tomcat

Tomcatがこの証明書を参照するように設定を変更するためには、Tomcatの設定ファイルserver.xmlのkeystoreFileのパスをMyDSKeyStore.jksに変更する。
パスワードを2か所記入するところがあるので、証明書を作成したときのパスワードを設定する。(下記だと"pw999")

<Connector port="8499" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https"
keystoreFile="/etc/enc/live/usagi1975.com/MyDSKeyStore.jks"
keystorePass="pw999"
clientAuth="false" sslProtocol="TLS"
keyAlias="tomcat" keyPass="pw999"
keystoreType="JCEKS"
secure="true"
:

上記サイトのやり方を真似て、Tomcatに設定した後、再起動後にproxy経由で接続したところ、正常にアクセスできるようになった。

あと、以下の設定ファイルもprotocolとportも変更した。


> vi ./tomcat/shared/classes/alfresco-global.properties

alfresco.port=8443
alfresco.protocol=https

share.port=8443
share.protocol=https