Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze |
instalace:apache [2022/05/24 12:19] – kozak | instalace:apache [2024/04/17 11:31] (aktuální) – [Konfigurace Apache] kozak |
---|
Výchozí konfigurace Apache, kterou vytvoří instalace nodu se nachází v **/etc/apache2/sites-available/blockchain.vaseDomena.conf** a obsahuje následující parametry: | Výchozí konfigurace Apache, kterou vytvoří instalace nodu se nachází v **/etc/apache2/sites-available/blockchain.vaseDomena.conf** a obsahuje následující parametry: |
<code><IfModule mod_ssl.c> | <code><IfModule mod_ssl.c> |
ServerAdmin **mail pro Let's encrypt autoritu** MDCertificateAgreement accepted | ServerAdmin **mail pro Let's encrypt autoritu** |
MDomain **blockchain.vaseDomena** MDPrivateKeys RSA 4096 | MDCertificateAgreement accepted |
| MDomain **blockchain.vaseDomena** |
| MDPrivateKeys RSA 4096 |
SSLStaplingCache shmcb:/var/run/ocsp(128000) | SSLStaplingCache shmcb:/var/run/ocsp(128000) |
| |
<VirtualHost *:443> | <VirtualHost *:443> |
ServerName **blockchain.vaseDomena** <FilesMatch "\.(cgi|shtml|phtml|php)$"> | ServerName **blockchain.vaseDomena** |
SSLOptions +StdEnvVars | <FilesMatch "\.(cgi|shtml|phtml|php)$"> |
| SSLOptions +StdEnvVars |
</FilesMatch> | </FilesMatch> |
<Directory /usr/lib/cgi-bin> | <Directory /usr/lib/cgi-bin> |
SSLOptions +StdEnvVars | SSLOptions +StdEnvVars |
</Directory> | </Directory> |
ErrorLog ${APACHE_LOG_DIR}/error.log | ErrorLog ${APACHE_LOG_DIR}/error.log |
ProxyPassReverse / http://localhost:8080 | ProxyPassReverse / http://localhost:8080 |
SSLEngine on | SSLEngine on |
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 | SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 |
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDH-ECDSA-AES-128-GCM-SHA256:ECDH-RSA-AES-128-GCM-SHA2> | SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDH-ECDSA-AES-128-GCM-SHA256:ECDH-RSA-AES-128-GCM-SHA2> |
SSLHonorCipherOrder on | SSLHonorCipherOrder on |
SSLCompression off | SSLCompression off |
Header always set Referrer-Policy "same-origin" | Header always set Referrer-Policy "same-origin" |
Header set Content-Security-Policy "script-src 'self' 'unsafe-eval' https:; object-src 'self' 'unsafe-eval' https:" | Header set Content-Security-Policy "script-src 'self' 'unsafe-eval' https:; object-src 'self' 'unsafe-eval' https:" |
Header set Feature-Policy "vibrate 'self'; geolocation 'self'; notifications 'self'" | |
</VirtualHost> | </VirtualHost> |
| |
<VirtualHost _default_:3000> | <VirtualHost _default_:3000> |
ServerName **blockchain.vaseDomena** <FilesMatch "\.(cgi|shtml|phtml|php)$"> | ServerName **blockchain.vaseDomena** |
SSLOptions +StdEnvVars | <FilesMatch "\.(cgi|shtml|phtml|php)$"> |
| SSLOptions +StdEnvVars |
</FilesMatch> | </FilesMatch> |
<Directory /usr/lib/cgi-bin> | <Directory /usr/lib/cgi-bin> |
SSLOptions +StdEnvVars | SSLOptions +StdEnvVars |
</Directory> | </Directory> |
ErrorLog ${APACHE_LOG_DIR}/error.log | ErrorLog ${APACHE_LOG_DIR}/error.log |
Header always set Referrer-Policy "same-origin" | Header always set Referrer-Policy "same-origin" |
Header set Content-Security-Policy "script-src 'self' 'unsafe-eval' https:; object-src 'self' 'unsafe-eval' https:" | Header set Content-Security-Policy "script-src 'self' 'unsafe-eval' https:; object-src 'self' 'unsafe-eval' https:" |
Header set Feature-Policy "vibrate 'self'; geolocation 'self'; notifications 'self'" | |
</VirtualHost> | </VirtualHost> |
</IfModule> | </IfModule> |
| |
| </code> |
| |
</code> * Dále se také do **/etc/apache2/ports.conf** doplní pod **ssl_module** ''Listen 3000'' pro funkci gatewaye | * Configurační soubor **blockchain.vaseDomena.conf** je potřeba zahrnout mezi Apache configy |
* A do **/etc/apache2/sites-available/000-default.conf** je vhodné do virtual hosta doplnit automatický redirect na https | * ''sudo a2ensite blockchain.vaseDomena'' |
| * Dále také do **/etc/apache2/ports.conf** doplnit pod **ssl_module **''Listen 3000'' pro funkci gatewaye |
| * Do **/etc/apache2/sites-available/000-default.conf** je vhodné do virtual hosta doplnit automatický redirect na https |
* ''Redirect permanent / [[https://blockchain.vaseDomena|https://blockchain.vaseDomena]]'' | * ''Redirect permanent / [[https://blockchain.vaseDomena|https://blockchain.vaseDomena]]'' |
* Nezapomeňte, že je potřeba mít povolené moduly SSL a MD | * Je potřeba povolit následující moduly: |
* ''sudo a2enmod md'' | * ''sudo a2enmod rewrite'' |
* ''sudo a2enmod ssl'' | * ''sudo a2enmod ssl'' |
SSL certifikáty se automaticky generují přes mod_md modul zabudovaný v Apachi. Pokud chcete přidat další doménu, pro kterou je potřeba generovat certifikáty (například Vaše aplikace bežící na nodu pod jinou doménou), doporučujeme vytvořit nový config například **aplikace.vaseDomena.conf** v /etc/apache2/sites-available/ a zařadit ho mezi configy, které si Apache načítá při spuštění příkazem ''sudo a2ensite **aplikace.vaseDomena**''.** **Potom stačí Apache restartovat ''sudo systemctl restart apache2'' a certifikáty by se měly pravidelně začít generovat i pro tuto doménu. Výše zmíněný config by pro aplikaci běžící na portu 8083 mohl vypadat například takto: | * ''sudo a2enmod md'' |
| * ''sudo a2enmod proxy'' |
| * ''sudo a2enmod proxy_http'' |
| * ''sudo a2enmod http2'' |
| * ''sudo a2enmod headers'' |
| SSL certifikáty se automaticky generují přes mod_md modul zabudovaný v Apachi. Pokud chcete přidat další doménu, pro kterou je potřeba generovat certifikáty (například Vaše aplikace bežící na nodu pod jinou doménou), doporučujeme vytvořit nový config například **aplikace.vaseDomena.conf** v /etc/apache2/sites-available/ a zařadit ho mezi configy, které si Apache načítá při spuštění příkazem ''sudo a2ensite **aplikace.vaseDomena**''.Potom stačí Apache restartovat ''sudo systemctl restart apache2'' a certifikáty by se měly pravidelně začít generovat i pro tuto doménu. Výše zmíněný config by pro aplikaci běžící na portu 8083 mohl vypadat například takto: |
<code> | <code> |
<IfModule mod_ssl.c> | <IfModule mod_ssl.c> |
ServerName **aplikace.vaseDomena** | ServerName **aplikace.vaseDomena** |
<FilesMatch "\.(cgi|shtml|phtml|php)$"> | <FilesMatch "\.(cgi|shtml|phtml|php)$"> |
SSLOptions +StdEnvVars | SSLOptions +StdEnvVars |
</FilesMatch> | </FilesMatch> |
<Directory /usr/lib/cgi-bin> | <Directory /usr/lib/cgi-bin> |
SSLOptions +StdEnvVars | SSLOptions +StdEnvVars |
</Directory> | </Directory> |
ErrorLog ${APACHE_LOG_DIR}/error.log | ErrorLog ${APACHE_LOG_DIR}/error.log |
ProxyPassReverse / http://localhost:8083/ | ProxyPassReverse / http://localhost:8083/ |
SSLEngine on | SSLEngine on |
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 | SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 |
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDH-ECDSA-AES-128-GCM-SHA256:ECDH-RSA-AES-128-GCM-SHA2> | SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDH-ECDSA-AES-128-GCM-SHA256:ECDH-RSA-AES-128-GCM-SHA2> |
SSLHonorCipherOrder on | SSLHonorCipherOrder on |
SSLCompression off | SSLCompression off |
Header always set Referrer-Policy "same-origin" | Header always set Referrer-Policy "same-origin" |
Header set Content-Security-Policy "script-src 'self' 'unsafe-eval' https:; object-src 'self' 'unsafe-eval' https:" | Header set Content-Security-Policy "script-src 'self' 'unsafe-eval' https:; object-src 'self' 'unsafe-eval' https:" |
Header set Feature-Policy "vibrate 'self'; geolocation 'self'; notifications 'self'" | |
</VirtualHost> | </VirtualHost> |
</IfModule> | </IfModule> |
| |
| </code> |
| ==== Vlastní SSL certifikáty ==== |
| |
| Stačí do zmíněného configu **/etc/apache2/sites-available/blockchain.vaseDomena.conf **doplnit cesty k certifikátu. |
| |
| 4. řádek ''MDomain **blockchain.vaseDomena**'' přepsat na: |
| <code> |
| <MDomain **blockchain.vaseDomena**> |
| MDCertificateFile /etc/ssl/certs/ssl-cert.pem |
| MDCertificateKeyFile /etc/ssl/private/ssl-cert.key |
| </MDomain> |
| |
</code> | </code> |
| |
| |
| |
| |