How can I install SSL on localhost in Ubuntu?

后端 未结 2 829
[愿得一人]
[愿得一人] 2020-12-22 19:41

I want to install an SSL certificate on my localhost in Ubuntu environment because I can\'t work on the production server directly. I have to put some conditions in my code

相关标签:
2条回答
  • 2020-12-22 20:03

    Don't use it for production, prefer let's encrypt in productions mode.

    openssl req -x509 -nodes -new -sha256 -days 1024 -newkey rsa:2048 -keyout localhost.key -out localhost.pem -subj "/C=US/CN=localhost"
    openssl x509 -outform pem -in localhost.pem -out localhost.crt
    

    It will output three files localhost.key, localhost.pem and localhost.crt

    0 讨论(0)
  • 2020-12-22 20:06

    Enable the apache module by typing:

    sudo a2enmod ssl
    

    After you have enabled SSL, you'll have to restart the web server for the change to be recognized:

    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:

    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:

    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:

    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:

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    

    With the comments removed, the file looks something like this:

    <IfModule mod_ssl.c>
        <VirtualHost _default_:443>
            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
            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                            SSLOptions +StdEnvVars
            </FilesMatch>
            <Directory /usr/lib/cgi-bin>
                            SSLOptions +StdEnvVars
            </Directory>
            BrowserMatch "MSIE [2-6]" \
                            nokeepalive ssl-unclean-shutdown \
                            downgrade-1.0 force-response-1.0
            BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
        </VirtualHost>
    </IfModule>
    

    In the end, it will look something like this. The entries were modified from the original file:

    <IfModule mod_ssl.c>
        <VirtualHost _default_:443>
            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
            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
            </FilesMatch>
            <Directory /var/www/html>
                SSLOptions +StdEnvVars
                DirectoryIndex index.php
                AllowOverride All
                Order allow,deny
                Allow from all
            </Directory>
            BrowserMatch "MSIE [2-6]" \
                            nokeepalive ssl-unclean-shutdown \
                            downgrade-1.0 force-response-1.0
            BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
        </VirtualHost>
    </IfModule>
    

    Save and exit the file when you are finished. Now that we have configured our SSL-enabled virtual host, we need to enable it.

    sudo a2ensite default-ssl.conf
    

    We then need to restart Apache to load our new virtual host file:

    sudo service apache2 restart
    

    That's it now run your site with https..!!

    0 讨论(0)
提交回复
热议问题