Statický web s HTTPS

Některé své weby hostuju na platformě Amazon S3. Buckety umožňují nastavit možnost „website“, kdy posílají definovanou stránku (index.html), a to bohatě stačí pro spoustu webů, které buď backend nepotřebují, nebo jej řeší jinak. Jediné, co mě mrzelo, bylo to, že S3 neumí website přes HTTPS.

Řešení existuje, a jmenuje se CloudFront. Je to CDN od Amazonu, která si bere soubory z S3 a šíří je po světě. CloudFront už umí nastavit HTTPS, a Amazon má dokonce i nástroj na správu certifikátů.

Praktický postup (především pro Michala Bláhu, který se mě na to ptal): Mám web www.ide80.com, hostovaný právě na S3, a chtěl bych jej na HTTPS.

Krok 1: Pomocí AWS Certificate Manageru si vygeneruju certifikát. Nejdřív si ale v horním menu přepnu region na „N. Virginia“

Potom dám Request a Certificate a vyplním doménu:

Potvrdím, znovu potvrdím, a za pár okamžiků přijde mail s potvrzovacím odkazem. Kliknu, dám Approve, a mám certifikát hotový.

Krok 2: nastavím CloudFront. Ve správci CloudFront nastavím Create Distribution, a z možností Web / RTMP vyberu Web a tam kliknu na Get Started.

Ve formuláři vyplním v sekci Origin položku Origin Domain Name – stačí kliknout a vybrat S3 bucket. Ve Viewer Protocol Policy si později nastavím „Redirect HTTP to HTTPS“, zatím nechám povolené oba protokoly, než ověřím, že HTTPS funguje bez problémů. V Distribution Settings do položky Alternate Domain Names zadám „www.ide80.com“ a hned pod tím zvolím „Custom SSL Certificate“ a vyberu ten odpovídající. Ještě o kousek níž do kolonky „Default Root Object“ napíšu „index.html“. Všechno ostatní nechám jak bylo, a kliknu na Create.

Krok 3: vrátím se na seznam CloudFront distributions, vyberu tu svoji, a v náhledu detailů hledám Domain Name – má tvar hchkrdtn125487.cloudfront.net. To je moje magická hodnota, na kterou nastavím CNAME pro mou doménu.

Pak už jen nechám probublat změny, zhruba 20 minut mi to trvalo, a vše funguje.

To je vše, přátelé…

Líbil se vám článek? Podpořte autora na Patreonu
banner

Copyright © 2017. Powered by WordPress & Romangie Theme.

banner