Jak přesunout fórum z HTTP na HTTPS?

Zde najdete veškeré články portálu phpBB.cz
Uživatelský avatar
Otakar Pěnkava
Administrátor
Administrátor
Příspěvky: 581
Registrován: sob 25. říj 2008 16:17:14
Kontaktovat uživatele:

Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Otakar Pěnkava » stř 27. črc 2016 15:18:01

V poslední době přechází spousta webů z protokolu HTTP na HTTPS. Výrazně tomu pomáhá nový bezplatný certifikát Let's Encrypt. A dnes se podíváme co vše budete muset udělat, když budete chtít přejít také.

Naštěstí v případě phpBB je to otázkou úpravy pár políček v nastavení. Předpokládám, že už certifikát máte aktivovaný.
1) přihlaste se do administrace
2) záložka Obecné (ta, kde se objevíte po přihlášení) -> Konfigurace serveru -> Server, upravíte:
- protokol serveru z http:// na https://
- port serveru z 80 na 443
- vynutit nastavení serveru: ANO
3) záložka Obecné (ta, kde se objevíte po přihlášení) -> Konfigurace serveru -> Cookies
- zabezpečená cookies: ANO
4) upravte soubor .htaccess, najděte řádek: RewriteEngine On a pod něj vložte:

Kód: Vybrat vše

RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R,QSA,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Tak a je to. Vaše fórum právě běží na protokolu HTTPS.
Starám se o projekt phpBB.cz od doby, kdy jsem jej zachránil před zaniknutím. Pomůžete mi a dostaneme jej zase nahoru?
Přes soukromé zprávy neposkytuji podporu. Napište do fóra, kde vyřešení problému může pomoci ostatním.

Kape51
Příspěvky: 9
Registrován: ned 20. pro 2015 1:34:43

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Kape51 » čtv 06. dub 2017 18:28:33

Bohužel mi uvedený návod nefunguje. Verze phpBB 3.1.6, verze PHP 5.4, verze MySQL 5.5.

Snažil jsem se najít něco na phpbb.com. Stáhl jsem si skript, který mi po spuštění (při nastaveních dle návodu) vypsal toto:
Server port: 80
getenv(SERVER_PORT): 80
$_SERVER[SERVER_PORT]: 80
Forcing server vars: true
Secure cookies: true
Secure request: false

což je samozřejmě špatně. Na url https://www.domena.cz nejede nic ("vypršel časový limit"), na url http://www.domena.cz se objeví jakoby textová varianta fóra (jen texty, žádné pozadí, rámy a jiné grafické prvky - tedy nejspíš jen obsah databáze).

Pokud v administraci fóra https vypnu, pak skript vypíše:
Server port: 80
getenv(SERVER_PORT): 80
$_SERVER[SERVER_PORT]: 80
Forcing server vars: false
Secure cookies: false
Secure request: false

což je v tomto případě dobře. Na url https://www.domena.cz nejede nic ("vypršel časový limit") - to je v tuto chvíli samozřejmé. Na url http://www.domena.cz jede vše jak má, což je opět v danou chvíli správně.

Tedy nastavením v administraci se sice příslušné hodnoty někam zapíší, ale nejsou akceptovány příslušným php skriptem, který stejně "předpokládá" protokol http.

Dle návodu na phpbb.com jsem ještě zkoušel vyměnit nějaký kód v souboru /includes/functions.php, ale naprosto nic to nezměnilo.

Prosím o radu.
Předem děkuji.


Kape51
Příspěvky: 9
Registrován: ned 20. pro 2015 1:34:43

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Kape51 » čtv 06. dub 2017 22:46:29

ansysko píše:
čtv 06. dub 2017 19:26:15
Skús to podľa tohoto návodu https://www.phpbb.sk/viewtopic.php?f=7&t=101
Děkuji za reakci, ale ani toto mi nezabralo. Vše se chovalo stejně, jako před tím (https -> "stránka nenalezena", resp. http -> jen textová forma). To jsem z toho blázen... Pro jistotu přikládám .htaccess, kde je (červeně) vidět, kam jsem přidal váš kód:

IfModule mod_rewrite.c>
RewriteEngine on
#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ https%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#
# The following 3 lines will rewrite URLs passed through the front controller
# to not require app.php in the actual URL. In other words, a controller is
# by default accessed at /app.php/my/controller, but can also be accessed at
# /my/controller
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ app.php [QSA,L]
#
# If symbolic links are not already being followed,
# uncomment the line below.
# http://anothersysadmin.wordpress.com/20 ... pache-228/
#
#Options +FollowSymLinks
</IfModule>
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
# module mod_authz_host to a new module called mod_access_compat (which may be
# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
# We could just conditionally provide both versions, but unfortunately Apache
# does not explicitly tell us its version if the module mod_version is not
# available. In this case, we check for the availability of module
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
<IfModule mod_version.c>
<IfVersion < 2.4>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
</IfVersion>
<IfVersion >= 2.4>
<Files "config.php">
Require all denied
</Files>
<Files "common.php">
Require all denied
</Files>
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
</IfModule>
<IfModule mod_authz_core.c>
<Files "config.php">
Require all denied
</Files>
<Files "common.php">
Require all denied
</Files>
</IfModule>
</IfModule>

Pro jistotu jsem vyzkoušel i ten váš druhý kód, tj. ten, který obsahuje "www", ale opět, jako kdybych nic nedělal. Prostě fórum se bez ohledu na jakékoliv nastavení pořád pokouší jet na portu 80 - jak plyne z výše uvedeného výpisu testovacího skriptu.

Prosím, byl by ještě nějaký nápad? Docela mě to mrzí. Jednak vás otravuji, ale také v dnešní době mi přijde ne zcela vhodné jet na http, když už i kdejaké květinářství má https, přičemž na uživatele vyskakuje při logování hláška o nezabezpečených heslech, apod. A také jsem koupil dost drahý certifikát...

Děkuji.

ansysko
Příspěvky: 563
Registrován: ned 01. lis 2009 23:47:51
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od ansysko » ned 09. dub 2017 18:54:49

NaphpBB.sk mám toto v súbore .htaccess

Kód: Vybrat vše

#RewriteBase /

        RewriteCond %{HTTP_HOST} !^www.phpbb.sk$ [NC]
        RewriteRule ^(.*)$ https://www.phpbb.sk/$1 [L,R=301]
A nemám problém. Ešte je možné, že ti hosting blokuje port na https

Kape51
Příspěvky: 9
Registrován: ned 20. pro 2015 1:34:43

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Kape51 » pon 10. dub 2017 21:44:11

ansysko píše:
ned 09. dub 2017 18:54:49
NaphpBB.sk mám toto v súbore .htaccess

Kód: Vybrat vše

#RewriteBase /

        RewriteCond %{HTTP_HOST} !^www.phpbb.sk$ [NC]
        RewriteRule ^(.*)$ https://www.phpbb.sk/$1 [L,R=301]
... Ešte je možné, že ti hosting blokuje port na https
Děkuji za snahu. Jelikož jsem ani nyní nebyl úspěšný, začínám se - tak jak jsi nadhodil - přiklánět k názoru, zda nebude nějaký problém třeba v hostingu. Ale nastavení domény mám správně a certifikát mi instalovali přímo lidé z hostingu - tedy nedávalo by smysl, aby mi nainstalovali certifikát a pak blokovali jeho použití... I když jsme všichni jen lidé...

Chtěl bych se ale zeptat na věci, které by dle mne s provozem na https neměly souviset, ale já už zkrátka nevím, a tak se chytám i stébla:
  • Mám různá rozšíření (mody). Je možné, že by to dělal některý z nich? (předpokládám, že ne)
  • Moje doména má alias, který nemá certifikát, protože jsem nepředpokládal, že by měl jet na https. Nemůže to mít nějakou souvislost? (předpokládám, že ne)

    Děkuji.

Uživatelský avatar
Otakar Pěnkava
Administrátor
Administrátor
Příspěvky: 581
Registrován: sob 25. říj 2008 16:17:14
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Otakar Pěnkava » úte 11. dub 2017 12:29:04

Jaká je adresa fóra? Prosím, dejte sem screenshot z Nastavení serveru a Nastavení cookies, ať víme, že máte vše správně nastaveno.
Starám se o projekt phpBB.cz od doby, kdy jsem jej zachránil před zaniknutím. Pomůžete mi a dostaneme jej zase nahoru?
Přes soukromé zprávy neposkytuji podporu. Napište do fóra, kde vyřešení problému může pomoci ostatním.

Kape51
Příspěvky: 9
Registrován: ned 20. pro 2015 1:34:43

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Kape51 » úte 11. dub 2017 21:58:51

Otakar Pěnkava píše:
úte 11. dub 2017 12:29:04
... Nastavení serveru a Nastavení cookies, ať víme, že máte vše správně nastaveno.
Uvedená nastavení jsem udělal naprosto přesně podle toho, jak jste je popsal v prvním příspěvku tohoto vlákna. Nyní to mám pochopitelně zase zpět na http, aby fórum jelo, takže screenshot by byl zavádějící. Přepínám to, jen když odněkud načerpám nový nápad. Podle vašeho návodu se vše zdálo velmi jednoduché, proto jsem do toho šel. Certifikát mi instaloval přímo hosting, zde žádný problém, pak jen dle vašeho návodu pár kliknutí myší... A ejhle, ono nic.

Nyní spekuluji o následující věci: Původně bylo fórum na doméně domena1, ke které byl alias domena2. Protože jsem přecházel k jinému hostingu a nechtěl nic ponechat náhodě, domény jsem "rozpojil" a na novém hostingu rozjel fórum na doméně domena2. Když jsem si byl jistý, že je vše OK, přiřadil jsem domena1 jako alias k domena2. Tedy "role" domén se otočily. Jenže nevím, jestli nemohlo zůstat někde něco zapsáno v php skriptech (v administraci fóra je správně domena2), co nyní blokuje přechod na https. Samozřejmě spekuluji... Ale fakt nevím...

Uživatelský avatar
Caleb
Příspěvky: 102
Registrován: pon 23. úno 2009 22:29:28
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Caleb » čtv 05. dub 2018 23:40:28

Zdravím
Taky bych měl dotaz. Jak "vynutit" použití HTTPS?

V administraci mám vše nastaveno správně dle prvního příspěvku což nemělo efekt.
Editoval jsem tedy .htaccess různými variantami, které jsem našel na netu. Jediný, který mi funguje je zde uvedený od Ansyko

Kód: Vybrat vše

#RewriteBase /

        RewriteCond %{HTTP_HOST} !^moje.domena.cz$ [NC]
        RewriteRule ^(.*)$ https://moje.domena.cz/$1 [L,R=301]
Vyčistil jsem cache phpBB i všech browserů, ale vždy se použije HTTP. Aby se použilo HTTPS musím do URL zadat přesný tvar https://moje.domena.cz/

Jak to udělat aby se vždy použilo HTTPS bez ohledu na to jak je zadána adresa?
Běžný uživatel do URL nepíše ani "www" natož pak určení protokolu.

Uživatelský avatar
Caleb
Příspěvky: 102
Registrován: pon 23. úno 2009 22:29:28
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Caleb » pon 09. dub 2018 9:16:01

Tak se zdá, že už mi HTTPS funguje za pomoci tohoto kódu

Kód: Vybrat vše

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Bohužel jsem ale narazil na jiný problém a sice teď nejsou funkční mnohá rozšíření :-|
Pokud chci vstoupit např. do Galerie, Oxpus Download, Video galerie nebo kalendáře vždy to skončí hláškou "Požadovaná stránka není dostupná"

x-rated
Příspěvky: 171
Registrován: pát 06. úno 2015 22:02:27
Bydliště: Praha
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od x-rated » sob 14. dub 2018 10:59:22

tohle používám já (nesmí chybět RewriteEngine on), řeší to nejen přesměrování na https, ale i další problémy
pokud ti něco z toho znefunkční web, což se stát může kvůli nastavení webhostingu, tak pak zkoušej jednotlivý řádky zakomentovat vložením # na začátek řádku
nakonec můžeš otestovat zabezpečení na několika online testech
https://tls.arodax.com/
https://www.ssllabs.com/ssltest/
https://securityheaders.com/

Kód: Vybrat vše

# vypnutí gzip komprese
SetEnv no-gzip 1

# vypnutí výpisu složek
Options -Indexes

# nastavení headerů
Header always set Strict-Transport-Security: "max-age=31536000" "expr=%{HTTPS} == 'on'"
Header always set Referrer-Policy: "strict-origin-when-cross-origin"
Header always set Content-Security-Policy: strict-dynamic
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Xss-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"

# přesměrování http -> https
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
fórum o připojení k internetu ➡️ internetforum.cz

Uživatelský avatar
Caleb
Příspěvky: 102
Registrován: pon 23. úno 2009 22:29:28
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Caleb » pon 23. dub 2018 11:38:49

Díky za tip.
Bohužel to vždy skončí hláškou "Smyčka při přesměrování" nebo "Web Vás přesměroval příliš mnohokrát. ERR_TOO_MANY_REDIRECTS"

Ještě mně napadlo vypnout veškerá rozšíření, zkusit pár editací .htaccess a po zprovoznění rozšíření postupně zapínat a sledovat kde to klekne :-|

Začínám z toho být trošku zoufalej...

x-rated
Příspěvky: 171
Registrován: pát 06. úno 2015 22:02:27
Bydliště: Praha
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od x-rated » stř 25. dub 2018 23:02:12

to všechno klidně může bejt problém se specifickou konfigurací webhostingu
tak to všechno zakomentuj a po jednom povoluj
jakmile narazíš na problém, tak to zakomentuj třeba dvěma #, ať si pamatuješ, co dělá problémy, a můžeš to pak řešit s webhostingem
co je to vůbec za webhosting?
fórum o připojení k internetu ➡️ internetforum.cz

Uživatelský avatar
Caleb
Příspěvky: 102
Registrován: pon 23. úno 2009 22:29:28
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Caleb » pát 27. dub 2018 8:02:48

ACTIVE24

Jejich Support mi doporučil použít jejich nastavení

Kód: Vybrat vše

RewriteEngine On

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]

Kód: Vybrat vše

https://faq.active24.com/cz/733057-SSLTLS-certifik%C3%A1ty
Zkusím to jejich nastavení zkombinovat s tím tvým a uvidím jak dopadnu :-)
...a díky moc za rady :)

Uživatelský avatar
Caleb
Příspěvky: 102
Registrován: pon 23. úno 2009 22:29:28
Kontaktovat uživatele:

Re: Jak přesunout fórum z HTTP na HTTPS?

Příspěvek od Caleb » úte 01. kvě 2018 9:27:38

Tak jsem zkoušel všemožné kombinace a nic není funkční :-(
Vždy se mi je vrátí hláška "Požadovaná stránka nebyla nalezena"

EDIT:
Deaktivoval jsem všechna rozšíření, abych dostal čistý systém. Nepomohlo.
v záložce Obecné - nastavení serveru jsem vypnul možnost Vynutit URL adresu serveru. POMOHLO!
Postupně jsem aktivoval zpět všechna rozšíření a vše je nyní funkční :-)

Možná je to je specifikum hostingu,

Odpovědět