apache2_ssl_debian
apache2 + ssl + debian + virtual hosts
- Install apache2
sudo apt-get install apache2
- Activate module and website
sudo a2ensite default-ssl sudo a2enmod ssl
- Restart apache
sudo /etc/init.d/apache2 restart
- Generate self-signed certificates
sudo mkdir /etc/apache2/ssl sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.crt
- In the last command put the name of your server.
- The create the two files out of the crt file
cd /etc/apache2/ssl sudo cp apache.crt apache.pem sudo cp apache.crt apache.key
- Edit this files and only leave the certificate key in the .pem file and the private key in the .key file
- Then edit /etc/apache2/sites-available/defaul-ssl and change to this:
SSLCertificateFile /etc/apache2/ssl/apache.pem SSLCertificateKeyFile /etc/apache2/ssl/apache.key
- Change permissions of the private key
sudo chmod 600 /etc/apache2/ssl/apache.key
- Restart again
sudo /etc/init.d/apache2 restart
- Disable http port. Edit /etc/apache2/ports.conf and comment:
#NameVirtualHost *:80 #Listen 80
- To have virtual hosts in ssl create a map file /etc/apache2/ssl_map with the server names and their respective document roots:
www.example.com /var/www wiki.example.com /usr/share/dokuwiki
- To the file /etc/apache2/sites-available/default-ssl inside the VirtualHost section add the following lines:
### Mass SSL Vhosts ###
RewriteEngine on
# define two maps: one for fixing the URL and one which defines
# the available virtual hosts with their corresponding
# DocumentRoot.
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/etc/apache2/ssl_map
# 1. make sure we don't map for common locations
RewriteCond %{REQUEST_URI} !^/cgi-bin/.*
RewriteCond %{REQUEST_URI} !^/icons/.*
# 2. make sure we have a Host header
RewriteCond %{HTTP_HOST} !^$
# 3. lowercase the hostname
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
#
# 4. lookup this hostname in vhost.map and
# remember it only when it is a path
# (and not "NONE" from above)
RewriteCond ${vhost:%1} ^(/.*)$
# 5. finally we can map the URL to its docroot location
# and remember the virtual host for logging puposes
RewriteRule ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]
- We need the rewrite module:
sudo a2enmod rewrite
- Restart apache2 and voila!
apache2_ssl_debian.txt · Last modified: 2021/02/01 05:55 by 127.0.0.1
