Technical specification



Similar documents

Creation and Management of Certificates

Working with Certificate and Key Files in MatrixSSL

Securing Web Access with a Private Certificate Authority

SSL Peach Pit User Guide. Peach Fuzzer, LLC. Version

Replacing vcenter Server 4.0 Certificates VMware vsphere 4.0

Installing Apache as an HTTP Proxy to the local port of the Secure Agent s Process Server

Installing an SSL certificate on the InfoVaultz Cloud Appliance

CentOS. Apache. 1 de 8. Pricing Features Customers Help & Community. Sign Up Login Help & Community. Articles & Tutorials. Questions. Chat.

X.509 and SSL. A look into the complex world of X.509 and SSL UUASC 07/05/07. Phil Dibowitz

Generating and Installing SSL Certificates on the Cisco ISA500

esync - Receiving data over HTTPS

To enable https for appliance

Security Workshop. Apache + SSL exercises in Ubuntu. 1 Install apache2 and enable SSL 2. 2 Generate a Local Certificate 2

The OPC UA Security Model For Administrators. Whitepaper Version 1.00

LAB :: Secure HTTP traffic using Secure Sockets Layer (SSL) Certificate

LAB :: Secure HTTP traffic using Secure Sockets Layer (SSL) Certificate

User Guide Generate Certificate Signing Request (CSR) & Installation of SSL Certificate

CERTIFICATE-BASED SINGLE SIGN-ON FOR EMC MY DOCUMENTUM FOR MICROSOFT OUTLOOK USING CA SITEMINDER

e-cert (Server) User Guide For Apache Web Server

Crypto Lab Public-Key Cryptography and PKI

Replacing VirtualCenter Server Certificates VMware Infrastructure 3

Encrypted Connections

User s guide. APACHE SSL Linux. Using non-qualified certificates with APACHE SSL Linux. version 1.3 UNIZETO TECHNOLOGIES S.A.

>copy openssl.cfg openssl.conf (use the example configuration to create a new configuration)

Replacing Default vcenter Server 5.0 and ESXi Certificates

SecuritySpy Setting Up SecuritySpy Over SSL

SSL Certificates in IPBrick

Secure Systems and Networks OpenSSL. Tomasz Surmacz, PhD 25 listopada 2014

Enterprise SSL Support

Setting Up CAS with Ofbiz 5

Creating Certificate Authorities and self-signed SSL certificates

C-Series How to configure SSL

Go to Policy/Global Properties/SmartDashboard Customization, click Configure. In Certificates and PKI properties, change host_certs_key_size to 2048

Technical specification

HTTPS Configuration for SAP Connector

Application Note AN1502

Linux Deployment Guide. How to deploy Network Shutdown Module for Linux

Red Hat Linux Guide to Installing Root Certificates, Generating CSR and Installing SSL Certificate

LoadMaster SSL Certificate Quickstart Guide

This section describes how to use SSL Certificates with SOA Gateway running on Linux.

CentraSite SSO with Trusted Reverse Proxy

DISTRIBUTED CONTENT SSL CONFIGURATION AND TROUBLESHOOTING GUIDE

How-to-Guide: Apache as Reverse Proxy for Fiori Applications

Installing Dspace 1.8 on Ubuntu 12.04

Creating a Free Trusted SSL Cert with StartSSL for use with Synctuary

Browser-based Support Console

RHEV 2.2: REST API INSTALLATION

Sun Java System Web Server 6.1 Using Self-Signed OpenSSL Certificate. Brent Wagner, Seeds of Genius October 2007

Virtual Private Network (VPN) Lab

How to: Install an SSL certificate

This document uses the following conventions for items that may need to be modified:

SWITCHBOARD SECURITY

Virtual Private Network with OpenVPN

To install and configure SSL support on Tomcat 6, you need to follow these simple steps. For more information, read the rest of this HOW-TO.

EventTracker Windows syslog User Guide

Cisco TelePresence VCS Certificate Creation and Use

Exercises: FreeBSD: Apache and SSL: SANOG VI IP Services Workshop

ViMP 3.0. SSL Configuration in Apache 2.2. Author: ViMP GmbH

Cisco Expressway Certificate Creation and Use

Cisco Expressway Certificate Creation and Use

xcp Application Deployment On Tomcat Cluster

Managing the SSL Certificate for the ESRS HTTPS Listener Service Technical Notes P/N REV A01 January 14, 2011

How to generate SSL certificates for use with a KVM box & XViewer with XCA v0.9.3

unigui Developer's Manual 2014 FMSoft Co. Ltd.

Junio SSL WebLogic Oracle. Guía de Instalación. Junio, SSL WebLogic Oracle Guía de Instalación CONFIDENCIAL Página 1 de 19

VMware vcenter Server 5.5 Deploying a Centralized VMware vcenter Single Sign-On Server with a Network Load Balancer

Configuration (X87) SAP Mobile Secure: SAP Afaria 7 SP5 September 2014 English. Building Block Configuration Guide

Protect your CollabNet TeamForge site

Configuring Ubuntu Server as a Firewall and Reverse Proxy for OWA 2007 Configuration Guide

Linux StrongS/Wan, FreeS/Wan or OpenS/Wan

Laboratory Exercises VI: SSL/TLS - Configuring Apache Server

SSL Certificates HOWTO

Low cost secure VPN MikroTik SSTP over OpenIXP (Indonesian Internet) ASTA INFORMATICS Faisal Reza

Apache Security with SSL Using Linux

Obtaining SSL Certificates for VMware View Servers

Apache Security with SSL Using Ubuntu

DoD Public Key Enablement (PKE) Quick Reference Guide. Securing Apache HTTP with mod_ssl for Linux

KMIP installation Guide. DataSecure and KeySecure Version SafeNet, Inc

Domino and Internet. Security. IBM Collaboration Solutions. Ask the Experts 12/16/2014

SolarWinds Technical Reference

Obtaining SSL Certificates for VMware Horizon View Servers

HP ALM. Software Version: External Authentication Configuration Guide

Configuring the JBoss Application Server for Secure Sockets Layer and Client-Certificate Authentication on SAS 9.3 Enterprise BI Server Web

CA Workload Automation DE

Securing the OpenAdmin Tool for Informix web server with HTTPS

Unifying Information Security. Implementing TLS on the CLEARSWIFT SECURE Gateway

Yealink Technical White Paper. Contents. About VPN Types of VPN Access VPN Technology... 3 Example Use of a VPN Tunnel...

EQUELLA. Clustering Configuration Guide. Version 6.0

CHAPTER 7 SSL CONFIGURATION AND TESTING

Exchange Reporter Plus SSL Configuration Guide

Example Apache Server Installation for Centricity Electronic Medical Record browser & mobile access

Apache, SSL and Digital Signatures Using FreeBSD

Scenarios for Setting Up SSL Certificates for View

Generate CSR for Third Party Certificates and Download Unchained Certificates to the WLC

Using VMware vcenter SSO 5.5 with VMware vcloud Automation Center 6.1

EMC Data Protection Search

Transcription:

Technical specification SSL certificate installation Koaly EXP Page : 1 / 20 Copyright 2005-2015 -

Title Client Project Type Language SSL certificate installation Koaly EXP Technical specification EN Information Page : 2 / 20 Copyright 2005-2015 -

Table of contents Introduction... 4 Linux operating system... 5 I.Software... 5 II.Files generation... 5 A.Generate private key (RSA)... 5 B.Generate certificate signature request (CSR)...6 C.Get Certificate Authorities file...7 III.Apache configuration... 7 IV.Tomcat configuration... 8 A.Keystore file generation... 8 B.Portal configuration... 9 C.Local port forward... 9 Windows operating system... 11 I.Software... 11 II.Files generation... 11 A.Generate private key (RSA)...11 B.Create an openssl configuration file...12 C.Generate certificate signature request (CSR)...14 D.Get Certificate Authorities file...15 E.Create specific directory for certificates...15 F.Create a script for Passphrase...16 III.Apache configuration... 16 IV.Tomcat configuration... 17 A.Keystore file generation... 17 B.Portal configuration... 18 C.Firewall... 18 Tests... 20 Page : 3 / 20 Copyright 2005-2015 -

Introduction This document describes the stages to be followed in order to install SSL certificate on Linux or Windows operating system with Apache web server. You will have to request a certificate to a certification authority (Thawte, Verisign...). Page : 4 / 20 Copyright 2005-2015 -

Linux operating system I. Software Usage Software Version / Module Operating system Linux Ubuntu server Debian CentOS Web server Apache Server 2.X - libapache-mod-ssl II. Files generation A. Generate private key (RSA) Create a specific directory for your Apache certificates. For example: /etc/apache/cert/ From your specific certificates directory, generate your private key. For a 2048 bits RSA private key, use next command: openssl genrsa -out www.mydomain.com.key -aes256 2048 Example with www.koaly.com domain: openssl genrsa -out www.koaly.com.key -aes256 2048 Enter a pass phrase. Don't forget to save it, you will have to use it for starting Apache server. Generating RSA private key, 2048 bit long modulus...+++...+++ e is 65537 (0x10001) Enter pass phrase for www.koaly.com.key: Verifying - Enter pass phrase for www.koaly.com.key: A ".key" file is generated, it must be like next example: -----BEGIN RSA PRIVATE KEY----- Page : 5 / 20 Copyright 2005-2015 -

Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,4BCA4E1FB3BDBF693D80CEBFBF1A2937 GkD2mP29McWQ3wPqV0Q+vb+F48jaPWsR6APE7z5M6efRt0XQct62BrsMoRWN9V5f wtmmhkdhufdoz2guevz4vo/+vic/+gksfpdtldzuiy+0t9rzr5lzvgypua6sr1cq... bwaguro0m1n4dajcvzv46ienr4rv3b8vc4z/xlrzfj1zaoznng+kshjx/flkuhwh 7qNivkUjpD2t2piY4ul4UaN5+7q7KpRfFezCWJH477mLPstKETZfpEJCjhbQFuOa -----END RSA PRIVATE KEY----- B. Generate certificate signature request (CSR) Generate your certificate signature request, you will have to send it to your certification authority. From your specific certificates directory, generate your CSR file. Use next command: openssl req -nodes -newkey rsa:2048 -keyout www.mydomain.com.key -out www.mydomain.com.csr Example with www.koaly.com domain: openssl req -nodes -newkey rsa:2048 -keyout www.koaly.com.key -out www.koaly.com.csr Enter your pass phrase and fill in fields. Filled in information must be correct, it will be checked by your certification authority. Enter pass phrase for www.koaly.com.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:ILE DE FRANCE Locality Name (eg, city) []:PARIS Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:www.koaly.com Email Address []: Page : 6 / 20 Copyright 2005-2015 -

Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: A ".csr" file is generated, it must be like next example: -----BEGIN CERTIFICATE----- MIIFLjCCBBagAwIBAgIQIKyBC22h97RRqBcnRy8RTzANBgkqhkiG9w0BAQUFADCB... QxNHrwr+ubvPb2+/lvgHLV/rwU0jZr2FLRnc51a/g7vk2aFdE0d+ipKJUzpv7St8 rbr6hvgubqp201dukk9gnmrprboi9gbfj5gstlrpilpnmq== -----END CERTIFICATE----- Send CSR file to your certification authority. Follow the certification authority process. Put delivered certificate (x509 format) on your server (on your specific certificates directory). Use next format name: www.mydomain.com.crt From your specific certificates directory, check your certificate. Use next command: openssl x509 -text -noout -in www.mydomain.com.crt Example with www.koaly.com domain: openssl x509 -text -noout -in www.koaly.com.crt C. Get Certificate Authorities file Apache need a Certificate Authorities file. Use your Certificate Authority help for finding it. For example, an Thawte web site, Certificate Authorities file is downloadable on: https://www.thawte.com/roots/index.html III. Apache configuration Add next parameters on your Apache configuration file. SSLEngine on SSLCertificateFile /yourcerticatespath/www.mydomain.com.crt Page : 7 / 20 Copyright 2005-2015 -

SSLCertificateKeyFile /yourcerticatespath/www.mydomain.com.key SSLCACertificateFile /yourcerticatespath/ca_file.crt You can use a virtual host for your SSL configuration. For example: <VirtualHost XXX.XXX.XXX.XXX:443> ServerName mydomain.com <Proxy *> AddDefaultCharset Off Order deny,allow Allow from all </Proxy> ProxyRequests Off ProxyPass / ajp://127.0.0.1:8009/ ProxyPassReverse / ajp://127.0.0.1:8009/ SSLEngine On SSLProxyEngine On SSLCACertificateFile /yourcerticatespath/ca_file.crt SSLCertificateFile /yourcerticatespath/www.mydomain.com.crt SSLCertificateKeyFile yourcerticatespath/www.mydomain.com.key </VirtualHost> IV. Tomcat configuration A. Keystore file generation In the next step, we need to create a PKCS12 keystore for use by the portal. If your SSL certificate authority does not provide PKCS12 keystore files, you can generate it with the following procedure. Prerequisites We assume the following files are present in the current working directory: server.crt PEM format file of CAs server.key private key server.ca-bundle CA bundle file The following command will ask you for a keystore password. Please use the same password each time you are asked for it. Don't forget to update the file server.xml with this password if you have not done so already. Debian / Ubuntu: sudo cat server.key server.crt server.ca-bundle openssl pkcs12 -export -nodes -name tomcat -out /home/koaly/exp/portal/conf/tomcat.p12 RedHat / CentOS: cat server.key server.crt server.ca-bundle openssl pkcs12 -export -nodes -name tomcat -out Page : 8 / 20 Copyright 2005-2015 -

/home/koaly/exp/portal/conf/tomcat.p12 B. Portal configuration By default, the portal is not configured for SSL. To switch to SSL, you can use the following procedure. Open the file /home/koaly/exp/portal/conf/server.xml: Debian / Ubuntu: sudo vi /home/koaly/exp/portal/conf/server.xml RedHat / CentOS: vi /home/koaly/exp/portal/conf/server.xml Replace the following lines <!-- HTTP (No SSL): Uncomment the following 4 lines --> <Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal" port="8080" protocol="http/1.1" connectiontimeout="20000"/> <!-- HTTP (SSL): Uncomment the following 6 lines --> <!--<Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal"--> <!--port="8443" protocol="http/1.1" SSLEnabled="true"--> <!--scheme="https" secure="true"--> <!--clientauth="false" sslprotocol="tls"--> <!--keystorefile="${catalina.base}/conf/tomcat.ks"--> <!--keystorepass="koaly2009"/>--> with <!-- HTTP (No SSL): Uncomment the following 4 lines --> <!-- <Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal" port="8080" protocol="http/1.1" connectiontimeout="20000"/> --> <!-- HTTP (SSL): Uncomment the following 6 lines --> <Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal" port="8443" protocol="http/1.1" SSLEnabled="true" scheme="https" secure="true" clientauth="false" sslprotocol="tls" keystoretype="pkcs12" keystorefile="${catalina.base}/conf/tomcat.p12" keystorepass="{password}"/> Note: The {password} is the password of your PKCS12 keystore C. Local port forward Page : 9 / 20 Copyright 2005-2015 -

Use iptables to forward traffic from port 443 to port 8443 Note: In the following commands, eth0 must be replaced by the network interface you want to redirect traffic for. Debian / Ubuntu: Note: We use iptables-persistent to make the current iptables persistent across reboots. If the package is not installed yet, you must install it first, accepting to persist the current rules: sudo apt-get -y install iptables-persistent Install the redirection and make the current state persistent: sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443 sudo invoke-rc.d iptables-persistent save RedHat / CentOS: vi /etc/sysconfig/iptables Add the following line to the *filter table: -A INPUT -p tcp -m state --state NEW -m tcp --dport 8443 -j ACCEPT Add the following parameters at the end of the file (or add the highlighted line if the nat table already exists): *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443 COMMIT Restart the firewall: service iptables restart Page : 10 / 20 Copyright 2005-2015 -

Windows operating system I. Software Usage Software Version / Packages Operating system Windows 2003 server 2008 server Web server Apache Server Apache 2.2.X - libapache-mod-ssl SSL OpenSSL II. Files generation A. Generate private key (RSA) You need to know where your openssl program is located. From your openssl directory, generate your private key. For a 2048 bits RSA private key, use next command: openssl genrsa -out www.mydomain.com.key -aes256 2048 Example with www.koaly.com domain: openssl genrsa -out www.koaly.com.key -aes256 2048 Enter a pass phrase. Don't forget to save it, you will have to use it for starting Apache server. Generating RSA private key, 2048 bit long modulus...+++...+++ e is 65537 (0x10001) Enter pass phrase for www.koaly.com.key: Verifying - Enter pass phrase for www.koaly.com.key: A ".key" file is generated, it must be like next example: -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED Page : 11 / 20 Copyright 2005-2015 -

DEK-Info: AES-256-CBC,4BCA4E1FB3BDBF693D80CEBFBF1A2937 GkD2mP29McWQ3wPqV0Q+vb+F48jaPWsR6APE7z5M6efRt0XQct62BrsMoRWN9V5f wtmmhkdhufdoz2guevz4vo/+vic/+gksfpdtldzuiy+0t9rzr5lzvgypua6sr1cq... bwaguro0m1n4dajcvzv46ienr4rv3b8vc4z/xlrzfj1zaoznng+kshjx/flkuhwh 7qNivkUjpD2t2piY4ul4UaN5+7q7KpRfFezCWJH477mLPstKETZfpEJCjhbQFuOa -----END RSA PRIVATE KEY----- B. Create an openssl configuration file On your openssl directory, create a new openssl.conf file. Copy next parameters on this file: # # SSLeay example configuration file. # This is mostly being used for generation of certificate requests. # RANDFILE =.rnd #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = democa # Where everything is kept certs = $dir\certs # Where the issued certs are kept crl_dir = $dir\crl # Where the issued crl are kept database = $dir\index.txt # database index file. new_certs_dir = $dir\newcerts # default place for new certs. certificate = $dir\cacert.pem # The CA certificate serial = $dir\serial # The current serial number crl = $dir\crl.pem # The current CRL private_key = $dir\private\cakey.pem # The private key RANDFILE = $dir\private\private.rnd # private random number file x509_extensions = x509v3_extensions # The extentions to add to the cert default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_match Page : 12 / 20 Copyright 2005-2015 -

# For the CA policy [ policy_match ] countryname = optional stateorprovincename = optional organizationname = optional organizationalunitname = optional commonname = supplied emailaddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryname = optional stateorprovincename = optional localityname = optional organizationname = optional organizationalunitname = optional commonname = supplied emailaddress = optional #################################################################### [ req ] default_bits = 1024 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes [ req_distinguished_name ] countryname = Country Name (2 letter code) countryname_min = 2 countryname_max = 2 stateorprovincename localityname 0.organizationName organizationalunitname = State or Province Name (full name) = Locality Name (eg, city) = Organization Name (eg, company) = Organizational Unit Name (eg, section) commonname = Common Name (eg, your website's domain name) commonname_max = 64 emailaddress = Email Address emailaddress_max = 40 [ req_attributes ] challengepassword = A challenge password challengepassword_min = 4 challengepassword_max = 20 [ x509v3_extensions ] # under ASN.1, the 0 bit would be encoded as 80 nscerttype = 0x40 Page : 13 / 20 Copyright 2005-2015 -

#nsbaseurl #nsrevocationurl #nsrenewalurl #nscapolicyurl #nssslservername #nscertsequence #nscertext #nsdatatype C. Generate certificate signature request (CSR) Generate your certificate signature request, you will have to send it to your certification authority. From your openssl directory, generate your CSR file. Use next command: openssl req -config openssl.conf -nodes -newkey rsa:2048 -keyout www.mydomain.com.key -out www.mydomain.com.csr Example with www.koaly.com domain: openssl req -config openssl.conf -nodes -newkey rsa:2048 -keyout www.koaly.com.key -out www.koaly.com.csr Enter your pass phrase and fill in fields. Filled in information must be correct, it will be checked by your certification authority. Enter pass phrase for www.koaly.com.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:ILE DE FRANCE Locality Name (eg, city) []:PARIS Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:www.koaly.com Email Address []: Page : 14 / 20 Copyright 2005-2015 -

Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: A ".crt" file is generated, it must be like next example: -----BEGIN CERTIFICATE----- MIIFLjCCBBagAwIBAgIQIKyBC22h97RRqBcnRy8RTzANBgkqhkiG9w0BAQUFADCB izelmakga1uebhmcvvmxftatbgnvbaotdhroyxd0zswgsw5jlje5mdcga1uecxmw... QxNHrwr+ubvPb2+/lvgHLV/rwU0jZr2FLRnc51a/g7vk2aFdE0d+ipKJUzpv7St8 rbr6hvgubqp201dukk9gnmrprboi9gbfj5gstlrpilpnmq== -----END CERTIFICATE----- Send CSR file to your certification authority. Follow the certification authority process. Put delivered certificate (x509 format) on your server (on your specific certificates directory). Use next format name: www.mydomain.com.crt From your openssl directory, check your certificate. Use next command: openssl x509 -text -noout -in www.mydomain.com.crt Example with www.koaly.com domain: openssl x509 -text -noout -in www.koaly.com.crt D. Get Certificate Authorities file Apache need a Certificate Authorities file Use your Certificate Authority help for finding it. For example, an Thawte web site, Certificate Authorities file is downloadable on: https://www.thawte.com/roots/index.html E. Create specific directory for certificates Create a specific directory for your Apache certificates. For example: c:\program Files\Apache\cert\ Page : 15 / 20 Copyright 2005-2015 -

Copy all certificates and keys files to this directory ( www.mydomain.com.crt, www.mydomain.com.key, ca_file.crt) F. Create a script for Passphrase On your specific directory for your Apache certificates, create a script "passphrase.cmd" which gives SSL passphrase for Apache. 1.@echo off 2.echo yourpassphrase III. Apache configuration Add next parameters on your Apache configuration file. SSLHonorCipherOrder On SSLProtocol -ALL +TLSv1 SSLCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:! AESGCM; SSLHonorCipherOrder on SSLEngine on SSLCertificateFile /yourcerticatespath/www.mydomain.com.crt SSLCertificateKeyFile /yourcerticatespath/www.mydomain.com.key SSLCACertificateFile /yourcerticatespath/ca_file.crt SSLPassPhraseDialog exec:/yourcerticatespath/passphrase.bat Header Add Strict-Transport-Security "max-age=15768000" You can use a virtual host for your SSL configuration. For example: SSLHonorCipherOrder On SSLProtocol -ALL +TLSv1 SSLCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:! AESGCM; SSLHonorCipherOrder on <VirtualHost XXX.XXX.XXX.XXX:443> ServerName mydomain.com <Proxy *> AddDefaultCharset Off Order deny,allow Allow from all </Proxy> ProxyRequests Off ProxyPass / ajp://127.0.0.1:8009/ Page : 16 / 20 Copyright 2005-2015 -

ProxyPassReverse / ajp://127.0.0.1:8009/ SSLEngine On SSLProxyEngine On SSLCACertificateFile /yourcerticatespath/ca_file.crt SSLCertificateFile /yourcerticatespath/www.mydomain.com.crt SSLCertificateKeyFile yourcerticatespath/www.mydomain.com.key SSLPassPhraseDialog exec:/yourcerticatespath/passphrase.bat Header Add Strict-Transport-Security "max-age=15768000" </VirtualHost> IV. Tomcat configuration A. Keystore file generation In the next step, we need to create a PKCS12 keystore for use by the portal. If your SSL certificate authority does not provide PKCS12 keystore files, you can generate it with the following procedure. Prerequisites You will need access to an installation of OpenSSL. If you do not want to install OpenSSL on the server, you can install it on any other machine and copy the generated file to the target directory. If you have access to a Linux machine, you can use this as well. Openssl is pre-installed on all major Linux distributions. We assume the following files are present in the current working directory: server.crt PEM format file of CA server.key private key server.ca-bundle CA bundle file Concatenate the files to provide a full certification path: copy server.key+server.crt+server.ca-bundle target.key The following command will ask you for a keystore password. Please use the same password each time you are asked for it. Don't forget to update the file server.xml with this password if you have not done so already. Open a command prompt and execute the following command (openssl.exe must be on your PATH): openssl pkcs12 -export -in target.key -nodes -name tomcat -out tomcat.p12 To finish, move the file tomcat.p12 to the directory c:\koaly\exp\portal\conf\ on your server. Page : 17 / 20 Copyright 2005-2015 -

B. Portal configuration By default, the portal is not configured for SSL. To switch to SSL, you can use the following procedure. Open the file C:\koaly\exp\portal\conf\server.xml in a text editor. Replace the following lines <!-- HTTP (No SSL): Uncomment the following 4 lines --> <Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal" port="80" protocol="http/1.1" connectiontimeout="20000" redirectport="443"/> <!-- HTTP (SSL): Uncomment the following 7 lines --> <!-- <Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal" port="443" protocol="http/1.1" SSLEnabled="true" scheme="https" secure="true" clientauth="false" sslenabledprotocols="tlsv1,tlsv1.1,tlsv1.2" ciphers="tls_ecdhe_rsa_with_aes_256_cbc_sha384,tls_ecdhe_rsa_with_aes_256_cbc_ SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_ WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC _SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA" keystoretype="pkcs12" keystorefile="${catalina.base}/conf/tomcat.p12" keystorepass="koaly2009"/> --> with <!-- HTTP (No SSL): Uncomment the following 4 lines --> <!-- <Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal" port="80" protocol="http/1.1" connectiontimeout="20000" redirectport="443"/> --> <!-- HTTP (SSL): Uncomment the following 6 lines --> <Connector executor="tomcatthreadpool" URIEncoding="UTF-8" server="koaly EXP Portal" port="443" protocol="http/1.1" SSLEnabled="true" scheme="https" secure="true" clientauth="false" sslenabledprotocols="tlsv1,tlsv1.1,tlsv1.2" ciphers="tls_ecdhe_rsa_with_aes_256_cbc_sha384,tls_ecdhe_rsa_with_aes_256_cbc_ SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_ WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC _SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA" keystoretype="pkcs12" keystorefile="${catalina.base}/conf/tomcat.p12" keystorepass="{password}"/> Note: The {password} is the password of your PKCS12 keystore. Page : 18 / 20 Copyright 2005-2015 -

C. Firewall To allow the HTTPS traffic through the Windows firewall, you need to create a new rule. Open a command prompt as administrator and execute the following command: netsh advfirewall firewall add rule name="allow HTTPS" dir=in action=allow protocol=tcp localport=443 Important: If UAC is active on your machine, just being logged on as administrator does not provide you the necessary rights. You need to right-click the Command Prompt item in the start menu and choose Run as administrator. Page : 19 / 20 Copyright 2005-2015 -

Tests Use next URL for testing your SSL certificate. https://www.ssllabs.com/ssltest/index.html Document end Page : 20 / 20 Copyright 2005-2015 -