Difference between revisions of "Install SSL Certificate"
CarlosRuiz (talk | contribs) |
CarlosRuiz (talk | contribs) (Update instructions for jetty 10) |
||
| Line 18: | Line 18: | ||
. $IDEMPIERE_HOME/utils/myEnvironment.sh server | . $IDEMPIERE_HOME/utils/myEnvironment.sh server | ||
| − | # | + | # IMPORTANT!! Here you must set the variable KEYSTOREPASS with the unencrypted ADEMPIERE_KEYSTOREPASS |
| − | # | + | # default iDempiere assigns myPassword, but you could have changed it on your setup |
| − | + | export KEYSTOREPASS=myPassword | |
| − | |||
# NOTE: if your hostname is not the same as the registered name for letsencrypt, then set it manually here: | # NOTE: if your hostname is not the same as the registered name for letsencrypt, then set it manually here: | ||
| Line 29: | Line 28: | ||
cd /tmp/key | cd /tmp/key | ||
| − | openssl pkcs12 -passout env: | + | openssl pkcs12 -passout env:KEYSTOREPASS -export \ |
-in /etc/letsencrypt/live/$DOMAIN/fullchain.pem \ | -in /etc/letsencrypt/live/$DOMAIN/fullchain.pem \ | ||
-inkey /etc/letsencrypt/live/$DOMAIN/privkey.pem \ | -inkey /etc/letsencrypt/live/$DOMAIN/privkey.pem \ | ||
| Line 37: | Line 36: | ||
keytool -importkeystore -destkeystore keystore_le -srckeystore fullchain_and_key.p12 \ | keytool -importkeystore -destkeystore keystore_le -srckeystore fullchain_and_key.p12 \ | ||
-alias idempiere \ | -alias idempiere \ | ||
| − | -srcstorepass:env | + | -srcstorepass:env KEYSTOREPASS \ |
| − | -deststorepass:env | + | -deststorepass:env KEYSTOREPASS -noprompt |
keytool -import -destkeystore keystore_le \ | keytool -import -destkeystore keystore_le \ | ||
-file /etc/letsencrypt/live/$DOMAIN/chain.pem -alias root \ | -file /etc/letsencrypt/live/$DOMAIN/chain.pem -alias root \ | ||
| − | -storepass:env | + | -storepass:env KEYSTOREPASS -noprompt |
chown idempiere:idempiere keystore_le | chown idempiere:idempiere keystore_le | ||
Latest revision as of 23:06, 9 February 2024
Letsencrypt
You can use letsencrypt to generate a free certificate for your server.
The instruction to generate a certificate depends on your operating system and the http server used (or not used). Usually you can find precise instructions for your setup at https://certbot.eff.org/
This guide is about how to install the letsencrypt certificate into your iDempiere instance, instead of the self-signed certificate generated during setup.
First you need to run setup as usual. This generates a self-signed certificate in $IDEMPIERE_HOME/jettyhome/etc/keystore
After that you execute the following instructions to import the letsencrypt certificate here:
# Convert the certificate into a format Jetty can use
# execute as ROOT!!
# NOTE: the script assumes your iDempiere folder is /opt/idempiere-server, if you installed it elsewhere, then please change the path accordingly
export IDEMPIERE_HOME=/opt/idempiere-server
. $IDEMPIERE_HOME/utils/myEnvironment.sh server
# IMPORTANT!! Here you must set the variable KEYSTOREPASS with the unencrypted ADEMPIERE_KEYSTOREPASS
# default iDempiere assigns myPassword, but you could have changed it on your setup
export KEYSTOREPASS=myPassword
# NOTE: if your hostname is not the same as the registered name for letsencrypt, then set it manually here:
export DOMAIN=`hostname`
mkdir -p /tmp/key
cd /tmp/key
openssl pkcs12 -passout env:KEYSTOREPASS -export \
-in /etc/letsencrypt/live/$DOMAIN/fullchain.pem \
-inkey /etc/letsencrypt/live/$DOMAIN/privkey.pem \
-out fullchain_and_key.p12 \
-name idempiere
keytool -importkeystore -destkeystore keystore_le -srckeystore fullchain_and_key.p12 \
-alias idempiere \
-srcstorepass:env KEYSTOREPASS \
-deststorepass:env KEYSTOREPASS -noprompt
keytool -import -destkeystore keystore_le \
-file /etc/letsencrypt/live/$DOMAIN/chain.pem -alias root \
-storepass:env KEYSTOREPASS -noprompt
chown idempiere:idempiere keystore_le
cp -p keystore_le $IDEMPIERE_HOME/jettyhome/etc/keystore
rm -rf /tmp/key
Example using Comodo
During the installation of iDempiere, a self signed certificate is created and setup with tomcat server. This certificate is not authenticate with popular CA. It's common to buy a certificate from trusted CA and to replace it.
For test purpose, we use a free trial 90 day-version of comodo Free trial ssl
Step overview
Command is execute in folder [idempiere_root]/keystore
- Create KeyStore
keytool -genkey -keyalg RSA -keysize 2048 -keystore domain.keystore
this step is done during iDempiere installation.
Remember keystore password for later use
- Create CSR file (for CA as comodo make certificate for you)
keytool -certreq -keyalg RSA -file domain.csr -keystore myKeystore -alias idempiere
- Keystore file of iDempiere is myKeystore
- alias is iDempiere
- upload file domain.csr to comodo, do flow guilder of comodo
you will receive a zip file containing the files below. Extract them to [idempiere_root]/keystore: file description
- AddTrustExternalCARoot.crt (Root entity certificate)
- COMODORSAAddTrustCA.crt (Intermediate entity certificate)
- COMODORSADomainValidationSecureServerCA.crt (Intermediate entity certificate)
- domain.crt (domain entity certificate)
keytool -import -trustcacerts -alias AddTrustExternalCARoot -file AddTrustExternalCARoot.crt -keystore myKeystore keytool -import -trustcacerts -alias COMODORSAAddTrustCA -file COMODORSAAddTrustCA.crt -keystore myKeystore keytool -import -trustcacerts -alias COMODORSADomainValidationSecureServerCA -file COMODORSADomainValidationSecureServerCA.crt -keystore myKeystore keytool -import -trustcacerts -alias COMODORSADomainValidationSecureServerCA -file COMODORSADomainValidationSecureServerCA.crt -keystore myKeystore keytool -import -trustcacerts -alias idempiere -file domain.crt -keystore myKeystore
Note: use correct alias value
- Config jetty
file: %IDEMPIERE_HOME%\jettyhome\etc\jetty-ssl-context.xml Line 8: replace "etc/keystore" to "etc/myKeystore" , save.
- what next?
restart iDempiere and open it in your browser.
