Fórum Root.cz

Hlavní témata => Server => Téma založeno: jan horacek 12. 07. 2018, 21:22:15

Název: Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 12. 07. 2018, 21:22:15
Předem podotýkám, že jsem naprostý začátečník, takže nekonkrétní pomoc mi nebude moc platná  :-\
Mám veřejnou IP. Koupil jsem certifikát pro použití více domén na jedné IP adrese.
V této chvíli, mi Apache běží bez SSL a mám v souboru httpd-vhosts.conf něco takového

Kód: [Vybrat]
<VirtualHost *:80>
    DocumentRoot "E:/J/Dokumenty/www/web1"
    ServerName www.domena1.com
    ErrorLog logs/domena1.log
    <Directory "E:/J/Dokumenty/www/web1">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "E:/J/Dokumenty/www/web2"
    ServerName sub1.domena2.com
    ErrorLog logs/domena2.log
    <Directory "E:/J/Dokumenty/www/web2">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "E:/J/Dokumenty/www/web3"
    ServerName sub2.domena2.com
    ErrorLog logs/domena2_2.log
    <Directory "E:/J/Dokumenty/www/web3">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Při nákupu certifikátu jsem vygeneroval na jejich stránkách 2 soubory - www.domena1.com.csr a www.domena1.com.key
Pak jsem obdržel soubory - www.domena1.com.cer a Intermediate_CA_chain.cer
Ale od vydavatele certifikátu také soubory - 266082220.crt, AddTrustExternalCARoot.crt, COMODORSAAddTrustCA.crt a COMODORSADomainValidationSecureServerCA.crt

Hledal jsem jak server nastavit, ale nepodařilo se mi to. Když jsem přidal do souboru httpd-ssl.conf

Kód: [Vybrat]
<VirtualHost *:443>
    DocumentRoot "E:/J/Dokumenty/www/web1"
    ServerName www.domena1.com

    SSLEngine on
    SSLCertificateFile ssl/www.domena1.com.cer # Cesta k UC/SAN certifikátu
    SSLCACertificateFile ssl/Intermediate_CA_chain.cer # Cesta k intermediate CA certifikátu
    SSLCertificateKeyFile ssl/www.domena1.com.key # Cesta k privátnímu klíči

    ErrorLog logs/domena1_ssl.log
    <Directory "E:/J/Dokumenty/www/web1">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Apache nejde vůbec spustit.

V souboru httpd.conf mám LoadModule ssl_module modules/mod_ssl.so

Najde se dobrá duše, která mi řekne, co kam napsat a jak obdržené soubory vůbec použít? Děkuji moc
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Stefan 12. 07. 2018, 21:54:51
Zkuste přidat informaci na čem to vlastně spouštíte a také nějaký kousek error logu který nám řekne proč vám Apache nejde spustít, takhle je to na křišťálovou kouli a věštění.

Stefan
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 12. 07. 2018, 22:07:25
Zkuste přidat informaci na čem to vlastně spouštíte a také nějaký kousek error logu který nám řekne proč vám Apache nejde spustít, takhle je to na křišťálovou kouli a věštění.

Stefan

Win10
Apache 2
XAMPP
[Thu Jul 12 19:37:11.166709 2018] [ssl:emerg] [pid 16284:tid 788] AH02572: Failed to configure at least one certificate and key for www.domena1.com:443
[Thu Jul 12 19:37:11.168710 2018] [ssl:emerg] [pid 16284:tid 788] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Vilith 12. 07. 2018, 22:48:29
A zkousel jsi pouzit Google?

Co treba https://gist.github.com/nguyenanhtu/33aa7ffb6c36fdc110ea8624eeb51e69
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 12. 07. 2018, 23:05:45
A zkousel jsi pouzit Google?

Co treba https://gist.github.com/nguyenanhtu/33aa7ffb6c36fdc110ea8624eeb51e69

Tu stránku jsem samozřejmě četl, ale nechápu. Navíc se tam píše o vytvoření certifikátu, ale ten jsem si přeci koupil. Nevím kam mám uložit všechny ty soubory. To nastavení v souboru httpd-xampp.conf mám také.  Apache se nespustí, když tam mám SSLEngine on. Jakmile toto ##, Apache se spustí, ale samozřejmě bez SSL
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Vilith 12. 07. 2018, 23:08:49
A co si udelat konfiguraci podle navodu a pokud to bude chodit, tak pouze nastavit cestu k zakoupenemu certifikatu a dal upravovat funkcni konfiguraci?
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Jenda 12. 07. 2018, 23:22:38
Do SSLCertificateFile vždycky dávám celou cestu.
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 12. 07. 2018, 23:35:45
A co si udelat konfiguraci podle navodu a pokud to bude chodit, tak pouze nastavit cestu k zakoupenemu certifikatu a dal upravovat funkcni konfiguraci?

Na té stránce jsem prostě nenašel nic, co bych neměl v souborech, kromě vytvoření certifikátu, který mám. Všude se píše o souborech *.crt a já dostal *.cer Nevím co s tím
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 12. 07. 2018, 23:37:49
Do SSLCertificateFile vždycky dávám celou cestu.

a s použitím uvozovek? "c:\xampp\apache\ssl\*.cer" nebo bez? Lomítka jsou \ nebo / ?
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Jenda 13. 07. 2018, 00:48:10
Bez uvozovek a s / lomítky. Ale to je na Linuxu…
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 09:19:55
V jakém formátu máš spárovaný certifikát (p12, pfx)? V crt nebo cer bývá jen veřejná část. Potřebuješ vyexportovat privátní část do formátu pem bez hesla a pak ho Apache sežere.

Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Boban 13. 07. 2018, 10:10:26
Zkus převést certifikát z cer na crt
Kód: [Vybrat]
openssl x509 -inform DER -in ssl_certificate.cer -out ssl_certificate.crt
A případně odstranit heslo z private key
Kód: [Vybrat]
openssl rsa -in key-file-with-password.pkey -out key-file-without-password.key
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:12:34
V jakém formátu máš spárovaný certifikát (p12, pfx)? V crt nebo cer bývá jen veřejná část. Potřebuješ vyexportovat privátní část do formátu pem bez hesla a pak ho Apache sežere.

Vůbec nevím o čem píšeš :D Nic jsem nepároval. Mám jen ty soubory, co jsem psal....
Při nákupu certifikátu jsem vygeneroval na jejich stránkách 2 soubory - www.domena1.com.csr a www.domena1.com.key
Pak jsem obdržel soubory - www.domena1.com.cer a Intermediate_CA_chain.cer
Ale od vydavatele certifikátu také soubory - 266082220.crt, AddTrustExternalCARoot.crt, COMODORSAAddTrustCA.crt a COMODORSADomainValidationSecureServerCA.crt
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:14:09
Zkus převést certifikát z cer na crt
Kód: [Vybrat]
openssl x509 -inform DER -in ssl_certificate.cer -out ssl_certificate.crt
A případně odstranit heslo z private key
Kód: [Vybrat]
openssl rsa -in key-file-with-password.pkey -out key-file-without-password.key

A co pak s tím *.crt?
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Boban 13. 07. 2018, 10:16:47
A co pak s tím *.crt?

Nastavit do
Kód: [Vybrat]
SSLCertificateFile
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:20:22
Tady je postup pro konfiguraci *.cer https://www.ssls.cz/instalace-apache-san.html, ale já prostě nespustím Apache, jakmile zapnu
      <VirtualHost *:443>
          ServerName www.domena1.com
          ServerAlias sub1.domena2.com sub.domena2.com
          RewriteEngine On
          #A ty 2 řádky... vůbec nevím co znamená, nevím kde je cesta na disku
          RewriteCond %{HTTPS} != on
          RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
      </VirtualHost>
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 10:28:37
Zkus

    SSLCertificateFile c:/xampp/apache/ssl/266082220.crt
    #SSLCACertificateFile c:/xampp/apache/ssl/Intermediate_CA_chain.cer
    SSLCertificateKeyFile c:/xampp/apache/ssl/www.domena1.com.key

Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:35:40
Zkus

    SSLCertificateFile c:/xampp/apache/ssl/266082220.crt
    #SSLCACertificateFile c:/xampp/apache/ssl/Intermediate_CA_chain.cer
    SSLCertificateKeyFile c:/xampp/apache/ssl/www.domena1.com.key

Nejde  :-\
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:39:36
Tady je poslední výpis z logs/error.log
[Fri Jul 13 10:32:35.736311 2018] [mpm_winnt:notice] [pid 13480:tid 528] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[Fri Jul 13 10:32:37.756284 2018] [mpm_winnt:notice] [pid 4264:tid 776] AH00364: Child: All worker threads have exited.
[Fri Jul 13 10:32:37.878281 2018] [mpm_winnt:notice] [pid 13480:tid 528] AH00430: Parent: Child process 4264 exited successfully.
[Fri Jul 13 10:34:30.147678 2018] [mpm_winnt:notice] [pid 1220:tid 796] AH00455: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/7.0.9 configured -- resuming normal operations
[Fri Jul 13 10:34:30.147678 2018] [mpm_winnt:notice] [pid 1220:tid 796] AH00456: Apache Lounge VC14 Server built: Jul  1 2016 11:09:37
[Fri Jul 13 10:34:30.147678 2018] [core:notice] [pid 1220:tid 796] AH00094: Command line: 'C:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Fri Jul 13 10:34:30.150680 2018] [mpm_winnt:notice] [pid 1220:tid 796] AH00418: Parent: Created child process 16408
AH00548: NameVirtualHost has no effect and will be removed in the next release C:/xampp/apache/conf/extra/httpd-vhosts.conf:19
[Fri Jul 13 10:34:31.227661 2018] [mpm_winnt:notice] [pid 16408:tid 740] AH00354: Child: Starting 150 worker threads.
[Fri Jul 13 10:34:50.130389 2018] [mpm_winnt:notice] [pid 1220:tid 796] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[Fri Jul 13 10:34:52.138361 2018] [mpm_winnt:notice] [pid 16408:tid 740] AH00364: Child: All worker threads have exited.
[Fri Jul 13 10:34:52.183359 2018] [mpm_winnt:notice] [pid 1220:tid 796] AH00430: Parent: Child process 16408 exited successfully.
[Fri Jul 13 10:35:00.246242 2018] [ssl:emerg] [pid 18008:tid 784] AH02311: Fatal error initialising mod_ssl, exiting. See C:/xampp/apache/logs/companions_ssl.log for more information
AH00016: Configuration Failed
[Fri Jul 13 10:35:15.442540 2018] [mpm_winnt:notice] [pid 12664:tid 748] AH00455: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/7.0.9 configured -- resuming normal operations
[Fri Jul 13 10:35:15.442540 2018] [mpm_winnt:notice] [pid 12664:tid 748] AH00456: Apache Lounge VC14 Server built: Jul  1 2016 11:09:37
[Fri Jul 13 10:35:15.442540 2018] [core:notice] [pid 12664:tid 748] AH00094: Command line: 'C:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Fri Jul 13 10:35:15.444536 2018] [mpm_winnt:notice] [pid 12664:tid 748] AH00418: Parent: Created child process 12028
AH00548: NameVirtualHost has no effect and will be removed in the next release C:/xampp/apache/conf/extra/httpd-vhosts.conf:19
[Fri Jul 13 10:35:16.500521 2018] [mpm_winnt:notice] [pid 12028:tid 716] AH00354: Child: Starting 150 worker threads.
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:42:58
A detail chyby
[Fri Jul 13 10:35:00.244242 2018] [ssl:emerg] [pid 18008:tid 784] AH02572: Failed to configure at least one certificate and key for www.domena1.com:443
[Fri Jul 13 10:35:00.246242 2018] [ssl:emerg] [pid 18008:tid 784] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 10:43:26
Pošli ještě obsah logu C:/xampp/apache/logs/companions_ssl.log.
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:50:34
Pošli ještě obsah logu C:/xampp/apache/logs/companions_ssl.log.

to je ten detail
[Fri Jul 13 10:35:00.244242 2018] [ssl:emerg] [pid 18008:tid 784] AH02572: Failed to configure at least one certificate and key for www.domena1.com:443
[Fri Jul 13 10:35:00.246242 2018] [ssl:emerg] [pid 18008:tid 784] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 10:55:27
Když otevřeš soubor s privátním klíčem v notepadu, jsou tam značky

 -----BEGIN PRIVATE KEY-----

 -----END PRIVATE KEY----- 

?
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 10:58:43
Když otevřeš soubor s privátním klíčem v notepadu, jsou tam značky

 -----BEGIN PRIVATE KEY-----

 -----END PRIVATE KEY----- 

?

je tam
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 11:15:59
Zkus ho klíč ještě protáhnout přes openssl

openssl rsa -in www.domena1.com.key  -out www.domena1.com.key.new

a pak nový klíč vložit do konfigurace.

OpenSSL pro win si stáhneš z https://wiki.openssl.org/index.php/Binaries.
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 11:33:15
Zkus ho klíč ještě protáhnout přes openssl

openssl rsa -in www.domena1.com.key  -out www.domena1.com.key.new

a pak nový klíč vložit do konfigurace.

OpenSSL pro win si stáhneš z https://wiki.openssl.org/index.php/Binaries.

Nainstaloval jsem to, ale chybí tam OpenSSL.cnf
WARNING: can't open config file: /usr/local/ssl/openssl.cnf
writing RSA key
Mám ho ale v xamppu, můžu ho použít?
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 12:37:05
zkus nebo raději si stáhni jnou binárku, která bude mít conf už obsažen
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: ByCzech 13. 07. 2018, 13:17:34
Nepomůže psát cestu k certifikátu se zdvojenými backslash? Např. C:\\cesta\\certifikat.crt když je to na Woknech?
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 14:25:12
Podařilo se mi zprovoznit alespoň to, že se už Apache rozeběhne. Aktuálně mám v souboru httpd-vhosts.conf níže uvedené...
Problém je teď to, že když v prohlížeči zadám https://www.domena1.com, přesměruje mě to na nezabezpečenou adresu http://www.domena1.com. Když odkřížkuju přesměrování ve <VirtualHost *:80>, na stránku se nedostanu, píše to Smyčka při přesměrování, Server přesměrovává požadavky na tuto adresu sám na sebe, a to takovým způsobem, který zabraňuje jejich dokončení.

<VirtualHost *:80>
    DocumentRoot "E:/J/Dokumenty/www/web1"
    ServerName www.domena1.com
    ServerAlias sub1.domena2.com sub2.domena1.com
    ErrorLog logs/domena1.log
    <Directory "E:/J/Dokumenty/www/web1">
         Options All
         AllowOverride All
         Require all granted
      </Directory>
      RewriteEngine On
# Když tyto 2 níže uvedené řádky odkřížkuji, je ta smyčka
#      RewriteCond %{HTTPS} off
#      RewriteRule ^/?(.*)$ https://www.domena1.com/$1 [NE,L,R=301]
 </VirtualHost>

<VirtualHost *:443>
    DocumentRoot "E:/J/Dokumenty/www/web1"
    ServerName www.domena1.com
    ServerAlias sub1.domena2.com sub2.domena1.com
    ErrorLog logs/domena1.log
    <Directory "E:/J/Dokumenty/www/web1">
         Options All
         AllowOverride All
         Require all granted
      </Directory>

      RewriteEngine On
      RewriteCond %{HTTP_HOST} !^www.domena1.com$ [NC]
      RewriteRule ^/?(.*)$ https://www.domena1.com/$1 [NE,L,R=301]

      SSLEngine on
      SSLProtocol all -SSLv3 -SSLv2
      SSLCertificateFile "C:/xampp/apache/ssl/www.domena1.com.cer"
      SSLCertificateKeyFile "C:/xampp/apache/ssl/www.domena1.com.key"
      SSLCertificateChainFile "C:/xampp/apache/ssl/Intermediate_CA_chain.cer"
</VirtualHost>

Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 15:35:23
V <VirtualHost *:443> zakomentuj redirect

      RewriteEngine On
      RewriteCond %{HTTP_HOST} !^www.domena1.com$ [NC]
      RewriteRule ^/?(.*)$ https://www.domena1.com/$1 [NE,L,R=301]
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 15:42:20
V <VirtualHost *:443> zakomentuj redirect

      RewriteEngine On
      RewriteCond %{HTTP_HOST} !^www.domena1.com$ [NC]
      RewriteRule ^/?(.*)$ https://www.domena1.com/$1 [NE,L,R=301]

Zkoušel jsem, nepomohlo to. Stále to přesměruje na http
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: Vilith 13. 07. 2018, 15:43:52
Zkus jiny prohlizec, casto je problem s tim, ze si pamtuje historii.
Nebo ho alespon ukonci a pust znovu
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: pogo 13. 07. 2018, 15:53:43
R=301 je permanentní přesměrování https://en.wikipedia.org/wiki/HTTP_301

změna prohlížeče by měla pomoc nebo si v aktuálním prohlížeči smaž historii.
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 16:00:18
Taky jsem to zkoušel. Všechny prohlížeče, přes mobil, restart serveru... stále stejné
Název: Re:Nastavení SSL Apache (IP based Virtual Host)
Přispěvatel: jan horacek 13. 07. 2018, 16:02:46
Nemůže být chyba třeba v kombinaci se souborem httpd-xampp.conf kde je

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect /xampp folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} xampp
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]

    # Redirect /phpMyAdmin folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} phpmyadmin
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]

    # Redirect /security folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} security
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]

    # Redirect /webalizer folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} webalizer
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
</IfModule>