Portál AbcLinuxu, 10. května 2025 02:24

Dotaz: Apache + SSL + subdomey

6.3.2012 14:44 Dirka | skóre: 15 | blog: dirka12345
Apache + SSL + subdomey
Přečteno: 695×
Odpovědět | Admin

cau, mam problem s Apache, aby spravne zobrazoval subdomeny pro SSL. Pro vsechny subdomeny zobrazuje obsah hlavni domeny, pro http spojeni mi vse funguje jak ma, tedy subdomeny korektne zobrazuji spravny obsah.

<VirtualHost domena.cz:443>
ServerAdmin webmaster@localhost
ServerName domena.cz
ServerAlias www.domena.cz
DocumentRoot /var/www/domena.cz/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/domena.cz.crt
SSLCertificateKeyFile /etc/apache2/ssl/domena.cz.key

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

<VirtualHost subdomena1.domena.cz:443>
ServerAdmin webmaster@localhost
ServerName subdomena1.domena.cz

DocumentRoot /var/www/domena.cz/subdomena1/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/domena.cz.crt
SSLCertificateKeyFile /etc/apache2/ssl/domena.cz.key

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>


Debian 6.0.4 + aktualni verze apache


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.3.2012 15:27 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Odpovědět | | Sbalit | Link | Blokovat | Admin
Standardní HTTPS nepodporuje virtuální servery rozlišené podle jména, protože jméno se přenáší až uvnitř šifrované komunikace a server tudíž neví, který certifikát má použít. Existuje rozšíření SNI, které podporuje Apache od verze 2.2.12. Bohužel podpora ze strany prohlížečů pořád není ideální, třeba Internet Explorer pod Windows XP to stále neumí.
6.3.2012 15:44 komodo | skóre: 27 | blog: komodo
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Samozrejme ze to jde, ve vnitrni siti to pouzivame bezne. Jediny problem, ktery se neda bez SNI vyresit je to, ze se u kazdyho virtualu pouzije certifikat definovany v prvnim virtualhostu.

Tady je nejake HOWTO
6.3.2012 16:44 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Dik, ale nastaveni na IP adresu, jak to je v tom dokumentu mi dava stejny chovani, tedy vsechny subdomeny zobrazuji to, co je definovay v prvnim hostu.
7.3.2012 13:24 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
A nechybi ti tam NameVirtualHost?
7.3.2012 22:20 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
To mam samo nastaveny, uz kua nevim co dal grrr, to je takova sragora ten apache?

Nemas treba nekde trosku podrobneji rozepsany jak to mas v te vnitrni siti, jestli nedelam nekde neco blbe?
LangPa avatar 7.3.2012 22:44 LangPa | skóre: 12 | blog: LangPavel | Hradec Králové
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Tohle nepomůže?
8.3.2012 08:16 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Co kdybyste sem váš konfigurák přiložil? Když to ostatním funguje, asi nebude problém v Apachi…
8.3.2012 10:43 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
no podle mě je problém v tom <VirtualHost domena.cz:443> mělo by tam být to samé co je v NameVirtualHost např:
NameVirtualHost *:443
<VirtualHost *:443>
    ServerName domena.cz
    ServerAlias www.domena.cz
    ....
</VirtualHost>

<VirtualHost *:443>
    ServerName subdomena1.domena.cz
    ....
</VirtualHost>
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
8.3.2012 16:18 komodo | skóre: 27 | blog: komodo
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Presne tak, tohle by melo v pohode fungovat a nemusite to mit na dvou IP adresach a resit NAT pro dalsi IP.
8.3.2012 16:29 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
A muzes mi sem hodit nakej ukazovaj konfigurak od vas, kde to funguje? S * mi to nefungovalo, nastaveni bylo stejny jako v tomhle prispevku http://www.abclinuxu.cz/poradna/linux/show/355541#12 jen zamenis IP za *:443 diky

ps - http u me s * funguje bez problemu
7.3.2012 13:26 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Na vnitrni siti se da v pohode pouzivat certifikat se subjectAltName, aby stranky se tvarily bezpecne.
6.3.2012 16:42 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Podle vseho co sem se docetl a podle konfiguraku v ssl by SNI melo byt podporovany u me na servru, ale stejne mi to nejede :/
LangPa avatar 7.3.2012 09:53 LangPa | skóre: 12 | blog: LangPavel | Hradec Králové
Rozbalit Rozbalit vše Stunnel
Odpovědět | | Sbalit | Link | Blokovat | Admin
stunnel umí zakončit SSL/TLS spojení, podporuje SNI, lze použít jako proxy, která forwarduje na apache, ten už žeší přímo dešifrovaný HTTP traffic.

Je možné naporit ho na pojmenovanou rouru nebo na jiný port a tím odlišit, že připojení je šifrované. Tuším, že zvládne nastavit i nějaké HTTP hlavičky, ale možná je potřeba použít správný patch

Já sice používám konfiguraci stunnel <==> HAProxy <==> nginx, ale s Apache by neměl být problém.

nginx umí SNI také a možná je konfigurace rozumnější, ale zase naproti tomu je třeba PHP napojit přez FastCGI (což nemusí být nutně na škodu - memory footprint/non PHP request)
8.3.2012 13:36 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Odpovědět | | Sbalit | Link | Blokovat | Admin

Takze soucasnej stav, na lokale funguje vse jak ma, jen z venku to nak nevali, prikladam konfiguraky.

/etc/apache2/ports.conf

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443 https
</IfModule>

<IfModule mod_gnutls.c>
Listen 443
</IfModule>

/etc/apache2/sites-available/ssl


<VirtualHost 10.1.1.1:443>
ServerAdmin webmaster@localhost
ServerName domena.cz
ServerAlias www.domena.cz
DocumentRoot /var/www/domena.cz/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/domena.cz/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/domena.cz.crt
SSLCertificateKeyFile /etc/apache2/ssl/domena.cz.key

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost 10.1.1.2:443>
ServerAdmin webmaster@localhost
ServerName subdomena1.domena.cz

DocumentRoot /var/www/domena.cz/subdomena1/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/domena.cz/subdomena1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/subdomena1.domena.cz.crt
SSLCertificateKeyFile /etc/apache2/ssl/subdomena1.domena.cz.key

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

/etc/hosts

127.0.0.1    localhost
127.0.1.1    debian6.wedos.com    debian6
10.1.1.1    
10.1.1.2    

curl -k https://10.1.1.1 resp curl -k https://10.1.1.2 vraci spravnej obsah.

curl -k https://domena.cz pripadne subdomena vraci

curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

Port 443 je otevrenej, nemate nekdo nakej napad?

8.3.2012 13:38 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Máte správně nastavený NAT na firewallu? Tj. zda předává komunikaci na správnou IP adresu ve vnitřní síti a správný port.
8.3.2012 14:41 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey

Ano nejspise je problem zde, z localu to rozezna fqdn, externe ne. Nicmene mohl byste mne nakopnout dale? Zde je vypis iptables

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
fail2ban-ssh-ddos  tcp  --  anywhere             anywhere            multiport dports ssh
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             loopback/8          reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:322
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh-ddos (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Je treba to udelat zde nebo pomoci route add? Mohl byste dat priklad pri interni addrese 10.1.1.1 a verejne ip napr 30.30.30.30? diky moc

8.3.2012 15:07 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Je potřeba to udělat v NATovací tabulce. Tu vypíšete příkazem
iptables -t NAT --line-numbers -n -L -v
8.3.2012 21:16 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Mohl byste byt konkretnejsi co v te konfiguraci zmenit/pridat? NAT tabulka je momentalne prazdna. Bohuzel iptables temer neznam a co jsem zkusil nastaveni podle dotazu zde na foru/co jsem nasel jinde, tak z toho nejsem vubec chytrejsi. diky
9.3.2012 08:19 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Pokud je NAT tabulka prázdná a nemáte tam ani žádný reverzní proxy server, nemůže se nikdo z venku připojit ani na HTTP. V konfiguraci máte uvedené IP adresy z privátního rozsahu, na které se z venku nikdo přímo nemůže připojit.
9.3.2012 11:06 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey

Takze nasledujici mi propusti https traffic a korektne funguje z venku ... jenze


iptables -t nat -A PREROUTING -i eth0 -d externi.IP -p tcp --dport 443 -j DNAT --to-destination 10.1.1.1


problem je ten, ze jen na tu jedno konkretni IP, lze toto nak aplikovat pro vice internich adres s jednou verejnou, pripadne jak?
9.3.2012 12:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Musíte to nějak odlišit. Portem, cílovou veřejnou IP adresou, zdrojovou IP adresou… Firewall má k dispozici čtyři údaje – zdrojovou a cílovou IP adresu a zdrojový a cílový port, a podle těch musí určit, co s paketem udělá. Pokud byste chtěl pod jednou veřejnou IP adresou vidět víc různých webů, musel byste tu HTTP(S) komunikaci zakončit na reverzním proxy serveru, ten by se podíval dovnitř do HTTP komunikace a podle toho by vytvořil nový požadavek do vnitřní sítě a odpověď pak předal zpět klientovi. To s firewallem udělat nejde, protože ten nerozumí vnitřku té komunikace (protokolu HTTP). V případě HTTPS by tedy musel být certifikát na tom proxy serveru.
9.3.2012 13:53 Dirka | skóre: 15 | blog: dirka12345
Rozbalit Rozbalit vše Re: Apache + SSL + subdomey
Dobre, diky, vyresil jsem to pres ruzny porty, krome jedne hlavni domeny jsou to ciste moje interni veci, takze mi to nevadi mit navic cislo portu v adrese.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.