Verified Commit ad9d53d1 authored by Adam Matoušek's avatar Adam Matoušek
Browse files

Implicitne generovat kompletni retez (-chain.crt).

parent 4ff195e3
Loading
Loading
Loading
Loading
+11 −4
Original line number Original line Diff line number Diff line
@@ -47,10 +47,17 @@ stroj.
  * `zverinec.cz.crt` – dočasný self-signed certifikát, určený k tomu, abyste si mohli všechno nakonfigurovat a nemuseli čekat na vystavení "ostrého" certifikátu.
  * `zverinec.cz.crt` – dočasný self-signed certifikát, určený k tomu, abyste si mohli všechno nakonfigurovat a nemuseli čekat na vystavení "ostrého" certifikátu.
I tento umístěte do příslušného systémového adresáře, například do `/etc/pki/tls/certs/` nebo `/etc/ssl/certs/`.
I tento umístěte do příslušného systémového adresáře, například do `/etc/pki/tls/certs/` nebo `/etc/ssl/certs/`.
  * `zverinec.cz-bundle.crt` – dočasný balík kořenových a mezilehlých certifikátů učený k testování, umístěte jej do adresáře s dočasným certifikátem.
  * `zverinec.cz-bundle.crt` – dočasný balík kořenových a mezilehlých certifikátů učený k testování, umístěte jej do adresáře s dočasným certifikátem.
  * `zverinec.cz-chain.crt` – kombinace dvou předchozích (tj. řetěz certifikátů od koncového po kořenový).
  * `zverinec.cz.csr` – certificate request. Na základě tohoto vystaví LE skutečný certifikát.
  * `zverinec.cz.csr` – certificate request. Na základě tohoto vystaví LE skutečný certifikát.


* Nakonfigurujte HTTPS server tak, aby používal výše uvedený klíč, certifikát a balík.
* Nakonfigurujte HTTPS server tak, aby používal výše uvedený klíč, certifikát a balík.
Pro Apache 2.4 můžete použít tyto direktivy v souboru `httpd.conf`:
Pro Apache 2.4.8 a novější můžete použít tyto direktivy v souboru `httpd.conf`:

    ```apache
    SSLCertificateFile /etc/pki/tls/certs/zverinec.cz-chain.crt
    SSLCertificateKeyFile /etc/pki/tls/private/zverinec.cz.key
    ```
  U starších Apache 2.4 je potřeba oddělit koncový certifikát od mezilehlých:


    ```apache
    ```apache
    SSLCertificateFile /etc/pki/tls/certs/zverinec.cz.crt
    SSLCertificateFile /etc/pki/tls/certs/zverinec.cz.crt
@@ -61,7 +68,7 @@ Pro Apache 2.4 můžete použít tyto direktivy v souboru `httpd.conf`:
  Třeba pro Nginx zas použijte tyto direktivy:
  Třeba pro Nginx zas použijte tyto direktivy:


    ```
    ```
    ssl_certificate /etc/pki/tls/certs/zverinec.cz-bundle.crt
    ssl_certificate /etc/pki/tls/certs/zverinec.cz-chain.crt
    ssl_certificate_key /etc/pki/tls/private/zverinec.cz.key
    ssl_certificate_key /etc/pki/tls/private/zverinec.cz.key
    ```
    ```


@@ -102,8 +109,8 @@ adresářů a povolte k němu přístup přes SSH z počítače `thetis.fi.muni.


* Ve skriptu je na začátku konfigurace, kde můžete upravit například
* Ve skriptu je na začátku konfigurace, kde můžete upravit například
jiné umístění souboru s certifikáty nebo příkazu
jiné umístění souboru s certifikáty nebo příkazu
pro znovunačtení konfigurace HTTPS serveru. Dle potřeby také upravte
pro znovunačtení konfigurace HTTPS serveru. Nepotřebujete-li generovat sloučený
generování *bundle* certifikátu (`$create_chain`).
řetěz certifikátů, můžete jeho generování vypnout (`$create_chain`).


* Nyní už zbývá jen požádat `unix@fi` o vystavení certifikátu. K žádosti přiložte
* Nyní už zbývá jen požádat `unix@fi` o vystavení certifikátu. K žádosti přiložte
dříve vygenerovaný certificate request – soubor `zverinec.cz.csr`:
dříve vygenerovaný certificate request – soubor `zverinec.cz.csr`:
+12 −9
Original line number Original line Diff line number Diff line
@@ -89,9 +89,10 @@ if ($?) {
}
}


if (-f "$host.crt") { # soubor z predchoziho kroku nemusi existovat
if (-f "$host.crt") { # soubor z predchoziho kroku nemusi existovat
	unlink "$host-bundle.crt";
	for my $dst_file ( "$host-bundle.crt", "$host-chain.crt" ) {
	print "Vytvarim docasny balik certifikatu pro testovani.\n";
		unlink $dst_file;
	system('cp', "$host.crt", "$host-bundle.crt");
		print "Vytvarim docasny balik certifikatu pro testovani ($dst_file).\n";
		system('cp', "$host.crt", $dst_file);


		if ($?) {
		if ($?) {
			print STDERR "Selhalo vytvareni baliku certifikatu; nevadi.\n";
			print STDERR "Selhalo vytvareni baliku certifikatu; nevadi.\n";
@@ -99,6 +100,7 @@ if (-f "$host.crt") { # soubor z predchoziho kroku nemusi existovat
			print "Balik certifikatu OK.\n";
			print "Balik certifikatu OK.\n";
		}
		}
	}
	}
}


my $myhost = hostname;
my $myhost = hostname;


@@ -112,6 +114,7 @@ Certificate request uspesne vytvoreny v souboru
certifikatu a jeho automaticke kopirovani na $myhost.
certifikatu a jeho automaticke kopirovani na $myhost.
Jako tajny klic pouzijte soubor $host.key.
Jako tajny klic pouzijte soubor $host.key.
Do vygenerovani certifikatu muzete docasne pouzit self-signed certifikat
Do vygenerovani certifikatu muzete docasne pouzit self-signed certifikat
v souboru $host.crt a balik $host-bundle.crt.
v souboru $host.crt a baliky $host-bundle.crt
a $host-chain.crt.


EOF
EOF
+1 −1
Original line number Original line Diff line number Diff line
@@ -37,7 +37,7 @@ my $post_cmd = 'apachectl -k graceful';
my $valid_base64_url_re = qr(\A[a-zA-Z0-9_-]+\z);
my $valid_base64_url_re = qr(\A[a-zA-Z0-9_-]+\z);


# Ma se vytvorit i slozeny soubor (-chain.crt)?
# Ma se vytvorit i slozeny soubor (-chain.crt)?
my $create_chain = 0;
my $create_chain = 1;


my $domain = <>;
my $domain = <>;
chomp $domain;
chomp $domain;