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