Czy każda subdomena potrzebuje własnego certyfikatu SSL?


41

Tworzę serwer websocket, który będzie działał ws.mysite.example. Chcę, aby serwer gniazd sieciowych był szyfrowany SSL, a także domain.exampleszyfrowany SSL. Czy muszę kupić nowy certyfikat dla każdej utworzonej subdomeny? Czy potrzebuję dedykowanego adresu IP dla każdej utworzonej subdomeny? Prawdopodobnie będę mieć więcej niż jedną subdomenę.

Używam NGINX i Gunicorn działającego na Ubuntu.

Odpowiedzi:


44

Odpowiem na to w dwóch krokach ...

Czy potrzebujesz certyfikatu SSL dla każdej subdomeny?

Tak i nie, to zależy. Powiedzmy, że twój standardowy certyfikat SSL dotyczy jednej domeny www.domain.example. Istnieją różne rodzaje certyfikatów, które możesz usunąć oprócz standardowych certyfikatów z jedną domeną: symbole wieloznaczne i certyfikaty z wieloma domenami.

  • Dzika karta cert zostaną wydane na coś takiego *.domain.example, a klienci będą traktować to jako ważny dla każdej domeny, która kończy się domain.example, jak www.domain.examplei ws.domain.example.

  • Wielo cert domena jest ważna dla predefiniowanej listy nazw domen. Robi to za pomocą pola Alternatywna nazwa podmiotu certyfikatu. Na przykład możesz powiedzieć urzędowi certyfikacji, że chcesz mieć certyfikat dla wielu domen dla domain.examplei ws.mysite.example. Pozwoliłoby to na użycie go dla obu nazw domen.

Jeśli żadna z tych opcji nie działa dla Ciebie, musisz mieć dwa różne certyfikaty SSL.

Czy potrzebuję dedykowanego adresu IP dla każdej subdomeny?

Ponownie, jest to tak i nie ... wszystko zależy od twojego serwera WWW / aplikacji. Jestem facetem z Windows, więc odpowiem przykładami IIS.

  • Jeśli korzystasz z usług IIS7 lub starszych, musisz powiązać certyfikaty SSL z adresem IP i nie możesz przypisać wielu certyfikatów do jednego adresu IP. Powoduje to, że musisz mieć inny adres IP dla każdej subdomeny, jeśli używasz dedykowanego certyfikatu SSL dla każdej subdomeny. Jeśli używasz certyfikatu z wieloma domenami lub certyfikatu z symbolem wieloznacznym, możesz uniknąć pojedynczego adresu IP, ponieważ na początku masz tylko jeden certyfikat SSL.

  • Jeśli korzystasz z IIS8 lub nowszego, to samo dotyczy. Jednak IIS8 + zawiera obsługę czegoś zwanego Server Name Indication (SNI). SNI pozwala powiązać certyfikat SSL z nazwą hosta, a nie z adresem IP. Tak więc nazwa hosta (nazwa serwera), która jest używana do złożenia żądania, służy do wskazania, który certyfikat SSL powinien użyć IIS dla żądania.

  • Jeśli korzystasz z pojedynczego adresu IP, możesz skonfigurować strony internetowe, aby odpowiadały na żądania określonych nazw hostów.

Wiem, że Apache i Tomcat również obsługują SNI, ale nie znam ich wystarczająco dobrze, aby wiedzieć, jakie wersje go obsługują.

Dolna linia

W zależności od aplikacji / serwera WWW i rodzaju certyfikatów SSL, które możesz uzyskać, narzucą się twoje opcje.


Używam gunicorn i nginx na Ubuntu.
user974407

W takim przypadku SNI powinien być dostępny tak długo, jak OpenSSL (dla nginx) był zgodny ze wsparciem SNI. Na jak na link w odpowiedzi GomoX.
pkeenan

Niektóre certyfikaty pojedynczej subdomeny wymieniają główną domenę jako alternatywę, więc możesz znaleźć www.domain.com i domain.com na jednym certyfikacie na jednym adresie IP. Uważaj, aby wziąć pod uwagę grupę docelową, biorąc pod uwagę SNI: IE na XP nie obsługuje go, co wpłynie na Ciebie w przypadku niektórych użytkowników korporacyjnych, ani niektórych starych przeglądarek mobilnych, takich jak Android w wersji co najmniej 2.3.5, które musisz wziąć pod uwagę jeśli kierujesz reklamy na urządzenia mobilne (tutaj jest wiele urządzeń z Androidem i starymi wersjami).
David Spillett,

@pkeenan - Byłoby dobrze, gdyby odpowiedź została zaktualizowana, aby odzwierciedlić funkcje techniczne, które obsługują nazwy hostów i domeny bez nazw hostów - helpdesk.ssls.com/hc/en-us/articles/…
Zmotywowany

> klienci będą traktować to jako ważne dla każdej domeny, która kończy się na „domena.com”, np. „www.domain.com” lub „ws.domain.com”. To prowadzi mnie do przekonania, że ​​byłoby to również ważne abc.def.domain.com, czy tak też jest?
Jeff

7

Możesz uzyskać certyfikat dla każdej subdomeny, certyfikat wielu subdomen lub certyfikat wieloznaczny (dla *.yoursite.example).

Zazwyczaj kosztują one nieco więcej niż zwykłe certyfikaty, a ponieważ dzielisz jeden certyfikat, zazwyczaj nie są one najlepszą opcją z punktu widzenia bezpieczeństwa, chyba że hostujesz anything.mydomain.exampletyp aplikacji, w której jest to jedyny możliwy wybór.

Nie potrzebujesz również wielu adresów IP, jeśli masz serwer WWW obsługujący SNI . To powiedziawszy, SNI jest obsługiwany tylko w nowoczesnych przeglądarkach (IE6 i poniżej nie będą z nim współpracować). Najnowsze wersje Nginx i Apache obsługują SNI w sposób transparentny (wystarczy dodać wirtualne hosty z obsługą SSL).


Co rozumiesz przez „nie najlepszą opcję z punktu widzenia bezpieczeństwa”?
Zmotywowany

4
Pojedynczy certyfikat współdzielony dla wszystkich hostów zamienia każde naruszenie certyfikatu w zagrożenie bezpieczeństwa na poziomie domeny, a nie tylko wpływa na subdomenę, do której dołączono certyfikat. Na przykład certyfikat użyty do www.yoursite.com, który jest instalacją WordPress, byłby taki sam, jak certyfikat dla payments.yoursite.com, który jest bezpieczną aplikacją do przetwarzania kart kredytowych. Jeśli pierwszy wyciek, drugi jest zagrożony.
GomoX

0

Będziesz potrzebował osobnego certyfikatu dla każdej subdomeny lub możesz kupić znak zastępczy cert ( *.domain.example) - droższy, ale ma sens, jeśli hostujesz wiele subdomen.

Jeśli chodzi o adresy IP, zależy to od konfiguracji serwera. Możesz użyć reguł nazw hostów, aby obsługiwać wiele witryn z tego samego adresu IP lub użyć unikatowych adresów IP dla każdego z nich. Obie metody mają wady i zalety.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.