How to Edit online over SSL on Alfresco Community 5.0.b

I was finally able to setup Edit online over SSL on Alfresco Community 5.0.B. Here's my setup:

Ubuntu 14.4

Apache as frontend 

Tomcat serving Alfresco pages through apache.

I am assuming you are familiar with Linux, Alfresco and Apache and thus would not go in-depth.

Enable Modules:

a2enmod rewrite proxy_ajp rewrite ssl

Create a virtual host for SSL access and add the following, replace <FQDN> with the domain name:

ServerName <FQDN>

ProxyRequests off

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/alfresco*

RewriteCond %{REQUEST_URI} !^/share*

RewriteRule /(.*)$ /share$0 [R]

ProxyPass /alfresco ajp://127.0.0.1:8009/alfresco

ProxyPassReverse /alfresco ajp://127.0.0.1:8009/alfresco

ProxyPass /share ajp://127.0.0.1:8009/share

ProxyPassReverse /share ajp://127.0.0.1:8009/share

ProxyPass / http://127.0.0.1:7070/

ProxyPassReverse / http://127.0.0.1:7070/

ProxyPass /_vti_bin/ http://127.0.0.1:7070/_vti_bin/

ProxyPassReverse /_vti_bin/ http://127.0.0.1:7070/_vti_bin/

ProxyPass /_vti_inf.html http://127.0.0.1:7070/_vti_inf.html

ProxyPassReverse /_vti_inf.html http://127.0.0.1:7070/_vti_inf.html

ProxyPass /_vti_history/ http://127.0.0.1:7070/_vti_history/

ProxyPassReverse /_vti_history/ http://127.0.0.1:7070/_vti_history/

Enable the virtual host, don't forget the SSL certificates

Create tomcat/shared/classes/alfresco/extension/vti-custom-context.xml and add the following content:

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://

www.springframework.org/dtd/spring-beans.dtd'>

 <beans>

  <!--

  <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="keystoreType">

       <value>JCEKS</value>

    </property>

  </bean>

</beans>

Edit tomcat/shared/classes/alfresco-global.properties and add:

vti.server.port=7070

vti.server.protocol=https

vti.server.ssl.keystore=/opt/alfresco-5.0.b/alf_data/keystore/ssl.keystore

vti.server.ssl.password=kT9X6oe68t

vti.server.url.path.prefix=/alfresco

vti.server.external.host=documents.ezref.info

vti.server.external.port=7070

vti.server.external.protocol=https

vti.server.external.contextPath=/alfresco

Stop and start Apache and alfresco.

Edit online will now work on SSL with the default certificate.