Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5

HOW-TO Jak utworzyć własny certyfikat SSL dla HTTPS?
#1

Poniżej nie będe się rozwodził na temat letsencypt i lokalnych certyfikatów poprostu przedstawię jak taki certyfikat stworzyć.

1. Tworzymy własny certyfikat SSL przy użyciu OpenSSL
Kod:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

Podczas tworzenia certyfikatu ukarzą nam sie takie informacje:
Kod:
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]:Bouncy Castles, Inc.
Organizational Unit Name (eg, section) []:Ministry of Water Slides
Common Name (e.g. server FQDN or YOUR name) []:server_IP_address
Email Address []:[email protected]_domain.com

Informacje jakie zostaną wprowadzone ma znaczenie, szczególnie dane o Common Name (e.g. server FQDN or YOUR name) musisz podać nazwę domeny która używasz publicznie jeśli chcesz korzystać z certyfikatu na publicznym IP. Jeśli certyfikat będzie używany w lokalnej sieci to nie ma większego znaczenia co gdzie umieścimy. Oba pliki jakie zostaną stworzone, zostaną umieszczone w /etc/ssl


Wpierw zajmiemy się tworzeniem konfiguracji apache pod względem silnego szyfrowania
utwórz nowy snipet /etc/apache2/conf-available i nazwiemy go ssl-params.conf
Kod:
nano /etc/apache2/conf-available/ssl-params.conf

2. Następnie wklejamy konfiguracje jak poniżej:
Kod:
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
# Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

3. Na koniec musimy zmodyfikować defaultowy plik Apacha od SSL /etc/apache2/sites-avalable/default-ssl.conf Zanim tego dokonamy bezpiecznie jest wykonać kopie zapasową pliku
Kod:
cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

teraz możemy otworzyć plik default-ssl.conf aby dokonać zmian
Kod:
nano /etc/apache2/sites-available/default-ssl.conf

/etc/apache2/sites-available/defaul-ssl.conf
Kod:
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin [email protected]

                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>

        </VirtualHost>
</IfModule>

Zmiany jakie dokonamy to pliki pem i key
Kod:
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin [email protected]
                ServerName server_domain_or_IP

                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
                SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

        </VirtualHost>
</IfModule>

4. Rekomendowane jest na koniec przekierowanie z portu 80 na 443, a dokonamy tego edytując globalny plik conf Apache i dodając jedną linijkę
Kod:
nano /etc/apache2/sites-available/000-default.conf

/etc/apache2/sites-available/000-default.conf

Kod:
<VirtualHost *:80>
        . . .

        Redirect "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości