--- source: https://stackoverflow.com/a/25946171 tags: ["apache2", "ubuntu"] --- ## Самоподписанный сертификат для локальной разработки Enable the apache module by typing: ```shell sudo a2enmod ssl ``` After you have enabled SSL, you'll have to restart the web server for the change to be recognized: ```shell sudo service apache2 restart ``` Let's start off by creating a subdirectory within Apache's configuration hierarchy to place the certificate files that we will be making: ```shell sudo mkdir /etc/apache2/ssl ``` Now that we have a location to place our key and certificate, we can create them both in one step by typing: ```shell sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt ``` The questions portion looks something like this: ```shell Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:New York City Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company Organizational Unit Name (eg, section) []:Department of Kittens Common Name (e.g. server FQDN or YOUR name) []:your_domain.com Email Address []:your_email@domain.com ``` Open the file with root privileges now: ```shell sudo nano /etc/apache2/sites-available/default-ssl.conf ``` With the comments removed, the file looks something like this: ```XML ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE [2-6]" \\ nokeepalive ssl-unclean-shutdown \\ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown ``` In the end, it will look something like this. The entries were modified from the original file: ```XML ServerAdmin admin@example.com ServerName your_domain.com ServerAlias www.your_domain.com DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all BrowserMatch "MSIE [2-6]" \\ nokeepalive ssl-unclean-shutdown \\ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown ``` Save and exit the file when you are finished. Now that we have configured our SSL-enabled virtual host, we need to enable it. ```shell sudo a2ensite default-ssl.conf ``` We then need to restart Apache to load our new virtual host file: ```shell sudo service apache2 restart ``` That's it now run your site with https..!!