Jak na SSL certifikát pro Google App Engine

Bezpečnost na internetu nesmíme podceňovat.

Je důležité zabezpečit komunikaci, která probíhá mezi PC návštěvníka webových stránek a serverem, na kterém jsou stránky umístěny. Aplikace běžící na platformě App Engine můžete zabezpečit SSL certifikátem.

Co vše budete potřebovat

  • App Engine projekt, ke kterému máte připojenu vlastní doménu;
  • Certifikát pro Vaši doménu od uznávané certifikační autority;
  • Přístup do Google Cloud Platform Console.

Jak získat certifikát od uznávané certifikační autority

  1. Vygenerování privátního klíče (CSR):
    1. Použijeme např. OpenSSL: openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr
    2. Po spuštění příkazu je nutné vyplnit:
      • kód země (2 znaky) [CZ];
      • lokalita (např. město);
      • název společnosti (nebo jméno a příjmení, pokud nemáte společnost);
      • organizační jednotka (můžete nechat prázdné);
      • název Vaší domény, např. www.example.com;
      • Vaše e-mailová adresa;
    Další položky jsou volitelné a není potřeba je vyplnit. Výstupní CSR soubor je server.csr, ten použijete pro vygenerování certifikátu u certifikační autority.
  2. Zvolte si certifikační autoritu (dále jen CA). Tyto webové stránky používají certifikát od společnosti Thawte. Můžete ale zvolit autoritu dle svých vlastních preferencí (např. Let's Encrypt, digicert, Comodo a spousta dalších).
  3. CA bude požadovat obsah CSR souboru: zkopírujete a vložíte obsah souboru server.csr dle instrukcí na portálu CA.
  4. CA provede ověření vlastnictví domény. Zde záleží na zvoleném certifikátu. Standardní (DV) SSL certifikát bude stačit ověřit pomocí e-mailu a vše bude hotovo v řádu minut. Dražší certifikáty s ověřením organizace (OV) nebo s rozšířenou validací a zeleným adresním řádkem (EV) ověřují CA důkladněji. Většinou zašlete CA požadované dokumenty nebo Vám např. zavolají na telefonní číslo uvedené ve veřejném katalogu firem a předají další instrukce. Takové ověření může trvat i několik dnů.
  5. After you provide domain owner approval, the CA sends the certificate to you, typically as a .zip file: unzip this file.
  6. Convert the private key you created above (myserver.key) into the format expected by App Engine, unencrypted:
    openssl rsa -in myserver.key -out myserver.key.pem
  7. Concatenate all of the .crt files from your CA into one file, using this command:
    cat www_example_com.crt ASecureServerCA.crt ATrustCA.crt ATrustExternal.crt > concat.crt
    When you upload the private key and the concatenated certs using the Google Cloud Platform Console SSL page within the App Engine settings for your project, in the file selector for private key, supply the private key file you just converted into a pem file: myserver.key.pem. And in the file selector for PEM encoded X.509 public key certificate, supply the concatenated file containing all the certificates from your CA: concat.crt

To verify that the private key and certificate match, use the following commands:

openssl x509 -noout -modulus -in concat.crt | openssl md5
openssl rsa -noout -modulus -in myserver.key.pem | openssl md5

Both commands should return the same output.

To verify that a certificate and its CA chain is valid, the openssl verify command can be useful:

openssl verify -verbose -CAfile concat.crt concat.crt

Další informace a postupy naleznete na stránkách Google Cloud Platform: https://cloud.google.com/appengine/docs/...