2013-02-16 10 views
5

Po prostu wiedziałem, że "s" oznacza "bezpieczne", a użytkownik nie powinien nigdy wprowadzać krytycznych informacji na stronie internetowej, która używa tylko http. Ale ja naprawdę chcę wiedzieć, co te dwa protokoły wpływa na programowanie, npJaka jest różnica między http i https w programowaniu

  • Jak zrobić niektóre strona dostał „https”, a niektóre nie (a może nie, w jaki sposób włączyć lub wyłączyć tę funkcję, że Nie wiem). Czy to oznacza, że ​​muszę go gdzieś zarejestrować?

  • Pomyślałem sobie, że komunikacja w http nie jest szyfrowana, podczas gdy niektóre szyfrowanie może odbywać się w https, czy to prawda?

  • A ponieważ proces szyfrowania (jeśli taki) jest wykonywany przez przeglądarkę, w wyniku tego mój kod po stronie serwera nie ma nic wspólnego z "http" lub "https", czy to prawda?

  • Czy istnieje sposób zmuszenia użytkownika do korzystania tylko z https?

+1

Wyszukiwanie SSL/TLS. –

+1

To nie ma nic wspólnego z programowaniem. To jest protokół transferu. – Kermit

Odpowiedz

4

Musisz zainstalować certyfikat SSL na serwerze internetowym, w celu umożliwienia HTTPS. Umożliwi to ustanowienie zaszyfrowanego połączenia między przeglądarką klienta a serwerem, a cały ruch HTTP będzie szyfrowany. Ten certyfikat jest wystawiony przez zaufany organ. Można również wygenerować certyfikat do celów testowych, ale gdy przeglądarka klienta przejdzie do strony internetowej, wyświetli ostrzeżenie, że ten certyfikat nie został wydany przez zaufany organ.

Możesz wymusić użycie HTTPS, konfigurując serwer WWW tak, aby automatycznie przekierowywał wszystkie żądania HTTP do odpowiedniego punktu końcowego HTTPS.

Można wyszukać SSL/TLS.

+0

* Ten certyfikat jest wystawiony przez zaufany organ. * Zaufania niekoniecznie są ustanawiane przez płatne relacje, np. * Kupowanie * certyfikatu. Jest to przydatne w szerokim www. sens, w którym certyfikaty głównego certyfikatu są powszechnie dystrybuowane wśród szerokiej bazy użytkowników, ale istnieją przypadki (takie jak w przypadku InCommon kilka lat temu), w których nawet ogólne uprawnienia mogą nie istnieć w starszych przeglądarkach bez odpowiedniego certyfikatu głównego w przeglądarce. Certyfikaty związane z intranetem to kolejny warunek "zaufanego urzędu". Chciałem tylko "wyjaśnić", że czasami sporny kawałek perspektywy. –

+0

Tak, to prawda. Można również samodzielnie wygenerować certyfikat SSL, a jeśli zainstalujesz ten certyfikat w zaufanym magazynie certyfikatów w przeglądarkach klientów, nawet nie pojawi się ostrzeżenie. Po prostu podczas projektowania witryny internetowej, w której nie masz kontroli nad przeglądarkami klientów, jeśli nie kupisz certyfikatu SSL od zaufanego urzędu, przeglądarki klienta zawsze otrzymają ostrzeżenie, że certyfikat nie jest zaufany. –

+0

Rozumiem. ':)' Właśnie chciałem, żeby ludzie czytający tę odpowiedź zrozumieli, że * zaufane * i * świadectwo * autorytety nie są jednym i tym samym. To łatwe nieporozumienie, stąd mój komentarz do tych, którzy czytają tę odpowiedź. –

7
  • stron WWW z wykorzystaniem protokołu HTTPS użyć certyfikatu, wydanego przez zaufaną stronę trzecią (lub „urząd certyfikacji”), która zawiera klucz publiczny (patrz: Public Key Infrastructure). Klucz publiczny jest sparowany z kluczem prywatnym, a informacje zaszyfrowane kluczem prywatnym można odszyfrować tylko za pomocą klucza publicznego. Służy to do potwierdzenia, że ​​serwer jest właścicielem klucza prywatnego (a tym samym jest podmiotem certyfikowanym przez urząd certyfikacji). Aby korzystać z protokołu HTTPS, musisz wygenerować lub kupić certyfikat. Częściej kupuje się certyfikaty niż je generuje, z różnych powodów.

  • Komunikacja HTTPS jest szyfrowana. Klucze powiązane z certyfikatem nie szyfrują, zamiast tego przeglądarka i serwer używają schematu, takiego jak Diffie-Hellman Exchange, aby utworzyć klucz używany do szyfrowania komunikacji. Jest to ważne, ponieważ każdy, kto ma klucz publiczny, może odszyfrować rzeczy zaszyfrowane kluczem prywatnym.

  • Informacje wysyłane z przeglądarki są szyfrowane przez przeglądarkę i deszyfrowane przez serwer. Twoje oprogramowanie serwera sieciowego odszyfruje informacje; otrzymane informacje nie będą się różnić od standardowego ruchu HTTP.

  • Tak, możesz wymusić HTTPS. Możesz to zrobić za pomocą oprogramowania serwera (np. RewriteRule w Apache, z RewriteCond sprawdzającym dla HTTPS) lub poprzez HSTS, co wiąże się z wysłaniem określonego nagłówka. Jeśli wysyłasz nagłówek HSTS w przeglądarce obsługującej HSTS, przeglądarka automatycznie przekieruje z HTTP do HTTPS (patrz: HTTP Strict Transport Security).

Powiązane problemy