Jak usunąć wymóg podawania portu w adresie URL w HTTPS

0

Witajcie,

Do swojej stronki dodałem mój własny certyfikat SSL. Strona stoi na tomcat8 i po kilku nieudanych próbach w końcu udało mi się zmusić Tomcata do wypluwania HTTPS. Niestety nie działa mi to do końca tak jak bym chciał. Mianowicie Tomcat stoi na porcie 80 i zwykły http działał w ten sposób, że z przeglądarki mogłem po prostu wpisać mojadomena.pl i przekierowywało mnie na mój serwer. W tej chwili mojadomena.pl nie działa i muszę wpisać cały adres: https://mojadomena.pl:80 dopiero po tym adresie wchodzi na mój serwer. Czy ktoś może poradzić jak to zrobić aby nie trzeba było pisać portu i https?

Podaję jak wygląda konfiguracja serwer.xml:

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"       
           minSpareThreads="20"
           maxThreads="200" SSLEnabled="true" clientAuth="false" sslProtocol="TLS"
           keystoreFile="ścieżka_do_pliku.pfx"
           keystorePass="*"
           keystoreType="PKCS12" />  
0

Port 80 nie jest domyślnym dla https, więc przeglądarka widząc https próbuje zapewne łączyć się po porcie 443.
Aby nie musieć wpisywać https musisz zrobić przekierowanie z http. Wtedy wpisanie bez protokołu w przeglądarce wywoła stronę z protokołem http, ale serwer przekieruje na https. Efekt będzie taki jaki oczekujesz.

EDIT:
Porównaj swoją konfigurację z tym:
https://www.itworld.com/article/2769041/development/how-to-configure-tomcat-to-always-require-https.html

0

@Sarrus: na tej stronie podane jest, że serwer nasłuchuje na 8080 ... u mnie jest na 80. Na stronie jest redirectPort na 443, natomiast Connector pod SSL jest na porcie 8443, a nie 443. Nie mniej jednak ani rozwiązanie ze strony, ani sam redirect portu 80 na 443 nie rozwiązują problemu.

1

Czyli rozumiem, że coś takiego nie działa?

 <Connector port="80" protocol="HTTP/1.1" 
           redirectPort="443"/>

<Connector port="443" protocol="HTTP/1.1"
           connectionTimeout="20000"    
           minSpareThreads="20"
           maxThreads="200" SSLEnabled="true" clientAuth="false" sslProtocol="TLS"
           keystoreFile="ścieżka_do_pliku.pfx"
           keystorePass="*"
           keystoreType="PKCS12" />  

W przykładzie jest jeszcze scheme="https" secure="true", ale to musisz sprawdzić czy ma znaczenie.

0

Tak takie coś nie chce działać.

1

Dobra znalazłem przyczynę. Nie działało ponieważ wcześniej miałem serwer tylko na 80 i UFW było skonfigurowane na zewnątrz tylko dla portu 80. Dodałem 443 do reguły i bangla bezproblemowo ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1