5.2 KiB
Use a bought SSL certificate
[TOC]
iRedMail generates a self-signed SSL certificate during installation, it's
fine if you just want to secure the network connections (POP3/IMAP/SMTP over
TLS, HTTPS), but mail clients or web browsers will promot a annoying message
to warn you this self-signed certificate is not trusted. To avoid this
annoying message, you have to buy a SSL certificate from SSL certificate
provider. Search buy ssl certificate
in Google will give you many SSL
providers, choose the one you prefer.
Get a SSL certificate
Request a free cert from Let's Encrypt
We have another tutorial to show you to request a free cert from Let's Encrypt: Request a free cert from Let's Encrypt.
Buy from a trusted SSL vendor
To buy ssl cert from a trusted vendor, you need to generate a new SSL
key and signing request file on your server with openssl
command:
!!! warning
Do NOT use key length smaller than `2048` bit, it's insecure.
# openssl req -new -newkey rsa:2048 -nodes -keyout privkey.pem -out server.csr
This command will generate two files:
privkey.pem
: the private key for the decryption of your SSL certificate.server.csr
: the certificate signing request (CSR) file used to apply for your SSL certificate. This file is required by SSL certificate provider.
The openssl command will prompt for the following X.509 attributes of the certificate:
Country Name (2 letter code)
: Use the two-letter code without punctuation for country. for example: US, CA, CN.State or Province Name (full name)
: Spell out the state completely; do not abbreviate the state or province name, for example: California.Locality Name (eg, city)
: City or town name, for example: Berkeley.Organization Name (eg, company)
: Your company name.Organizational Unit Name (eg, section)
: The name of the department or organization unit making the request.Common Name (e.g. server FQDN or YOUR name)
: server FQDN or your name.Email Address []
: your full email address.A challenge password []
: type a password for this ssl certificate.An optional company name []
: an optional company name.
NOTE: Some certificates can only be used on web servers using the Common Name
specified during enrollment. For example, a certificate for the domain
domain.com
will receive a warning if accessing a site named www.domain.com
or secure.domain.com
, because www.domain.com
and secure.domain.com
are
different from domain.com
.
Now you have two files: privkey.pem
and server.csr
. Go to the website of
your preferred SSL privider, it will ask you to upload server.csr
file to
issue an SSL certificate.
Usually, SSL provider will give you 2 files:
cert.pem
fullchain.pem
(some SSL providers use nameserver.ca-bundle
)
We need above 2 files, and privkey.pem
. Upload them to your server, you can
store them in any directory you like, recommended directories are:
- on RHEL/CentOS:
cert.pem
andfullchain.pem
should be placed under/etc/pki/tls/certs/
,privkey.pem
should be/etc/pki/tls/private/
. - on Debian/Ubuntu, FreeBSD:
cert.pem
andfullchain.pem
should be placed under/etc/ssl/certs/
,privkey.pem
should be/etc/ssl/private/
. - on OpenBSD:
/etc/ssl/
.
Use the bought cert
The easiest and quickest way to use the bought cert is replacing the self-signed SSL cert generated by iRedMail installer, then restart services which use the cert files.
Replace cert files
!!! warning
If you deployed iRedMail with the iRedMail Easy platform, ssl cert files
are stored under `/opt/iredmail/ssl/`:
* `key.pem`: private key
* `cert.pem`: certificate
* `combined.pem`: full chain
- On RHEL/CentOS:
mv /etc/pki/tls/certs/iRedMail.crt{,.bak} # Backup. Rename iRedMail.crt to iRedMail.crt.bak
mv /etc/pki/tls/private/iRedMail.key{,.bak} # Backup. Rename iRedMail.key to iRedMail.key.bak
cp fullchain.pem /etc/pki/tls/certs/iRedMail.crt
cp privkey.pem /etc/pki/tls/private/iRedMail.key
- On Debian/Ubuntu, FreeBSD and OpenBSD:
mv /etc/ssl/certs/iRedMail.crt{,.bak} # Backup. Rename iRedMail.crt to iRedMail.crt.bak
mv /etc/ssl/private/iRedMail.key{,.bak} # Backup. Rename iRedMail.key to iRedMail.key.bak
cp fullchain.pem /etc/ssl/certs/iRedMail.crt
cp privkey.pem /etc/ssl/private/iRedMail.key
Restart network services
Required services:
- Postfix
- Dovecot
- Nginx or Apache
Depends on the backend you chose during iRedMail installation, you may need to restart:
- MySQL or MariaDB
- PostgreSQL
- OpenLDAP
Verify the cert
- To verify ssl cert used in Postfix (SMTP server) and Dovecot, please launch a mail client application (MUA, e.g. Outlook, Thunderbird) and create an email account, make sure you correctly configured the MUA to connect to mail server. If SSL cert is not valid, MUA will warn you.
- For Apache / Nginx web server, you can access your website with favourite web browser, the browser should show you the ssl cert status. Or, use other website to help test it, for example: https://www.ssllabs.com/ssltest/index.html (input your web host name, then submit and wait for a result).