Refer to
http://www.nuxeo.com/en/downloads/download-debian
http://doc.nuxeo.com/display/ADMINDOC/Installing+the+Nuxeo+Platform+on+Linux:
To install a mail server for nuxeo server to send email:
References:
http://doc.nuxeo.com/display/ADMINDOC/HTTP+and+HTTPS+reverse-proxy+configuration
http://answers.nuxeo.com/questions/4609/nuxeo-live-edit-throws-a-java-npe
http://doc.nuxeo.com/pages/viewpage.action?pageId=6030082
Tested Environment:
Below configuration has been tested and was found to work on:
Steps:
(1) After installing Apache server, enable site ssl and necessary modules
a2ensite default-ssl
a2enmod ssl proxy proxy_http headers rewrite
service apache2 restart
(2) Edit site configuration file ("/etc/apache2/sites-enabled/default-ssl")
Configurations below enables reverse proxy through https, and also enables authentication by client certificate. It also works well with LiveEdit and Nuxeo Drive.
It's not sufficient to just drop this configure file and expect things to work. Read carefully comments below the configuration file for further details - note that other files and actions are also involved to make this configuration work!
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName nutest.test.com
ServerAlias nutest.test.com
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
RequestHeader append nuxeo-virtual-host "https://nutest.test.com/"
ServerAdmin webmaster@localhost
SSLVerifyClient optional
<ProxyMatch ^http\://127\.0\.0\.1\:8080((/nuxeo/nxstartup.faces)|(/nuxeo/login.jsp))>
SSLRequireSSL
Include /etc/apache2/access_control
SSLCACertificatePath /etc/ssl/test_certs/
SSLVerifyDepth 3
RewriteEngine on
RewriteCond %{SSL:SSL_CLIENT_VERIFY} !=SUCCESS
RewriteRule .? - [F]
ErrorDocument 403 "ACCESS DENIED: You need a client side certificate issued by EAST IP to access this site"
</ProxyMatch>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/nutest.pem
SSLCertificateKeyFile /etc/ssl/private/nutest.key
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Comments and Explanations (IMPORTANT, READ CAREFULLY):
(3) Client-side setup
First, import the client certificate into web browser and try to access and login Nuxeo. If it does not work, check the reverse proxy and client certificate authentication settings, as well as the log files on server (/var/log/apache2/ssl_access.log).
If uses self signed certificate or certificate issued by an untrusted CA, import the CA certificate into browser.
If client uses LiveEdit, and the issuer of the client certificate is not trusted by the Java Runtime Environment (JRE) on client end (for example, self signed) in which the LiveEdit plugin runs, import the issuer's certificate into the JRE's cacerts keyring with the JRE's keytool:
keytool -importcert -trustcacerts -alias alias_for_your_ca -file your_ca_cert.pem -keystore /opt/jdk1.7.0_09/jre/lib/security/cacerts
(4) Debug LiveEdit Problems
If in any case LiveEdit does not work and throw a Java exception, do the follows to diagnose the problem:
First, find the log file for the plugin
For Firefox, look at "Tools -> Add-ons -> Nuxeo LiveEdit Protocol Handler -> Preferences" and find the working dir. For windows, search under the user dir for the log file. The log file may exist only AFTER the Java exception is thrown and named "nuxeo-liveedit-openoffice-extension.log"
Then, inspect the log file and search for solution
The log file contains the complete stack dump and other information to help to diagnose the problem.
When something went wrong it's worth to check:
1. Lack of ServerAlias / ServerName directives causing failure of Live Edit
See http://answers.nuxeo.com/questions/4609/nuxeo-live-edit-throws-a-java-npe
Symptom: "javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name" found in Live Edit log
Solution: add "ServerAlias" "ServerName" directive in Apache configuration
2. Server Certificate not trusted by Client Java Environment where Live Edit plugin is running
Solution: import the issuer (CA) certificate, see above
3. Live Edit does not provide client certificate to server
Walk around: do not request client certificate authentication for resources that Live Edit would request, see above
4. When uploading document exceeding certain size, upload will fail
Symptom: in ssl_access.log found http response 413 in POST requests indicating request over-size; in error.log found "could not buffer message body to allow SSL renegotiation to proceed";
Reason: when SSLVerifyClient directive is used or otherwise requires buffer request in memory, large POST request (file upload) could fail. See Apache document for directive SSLRenegBufferSize.
Walk around: not a good solution to just increase buffer size, because it allows denial-of-service attack and hardly memory buffer could be large enough for upload. Just do not request client verify for upload resources.
5. Live Edit does not work on IE9+, unless in compatible mode
This is a known issue and solutions are given here: http://doc.nuxeo.com/display/USERDOC56/Live+Edit+compatibility+table
I chose to change Live Edit detection to "server". Users will see Live Edit icon regardless whether or not plugin is installed. This can be nuisances but still better than requesting user to adjust their browsers.