Obnova SSL certifikátů v apache2 (Ubuntu)
Pro Linuxáky opět nosím dříví do lesa, ale Widlák potřebuje tahák. Tak předně – nepracujeme s PFX soubory, ale se soubory PEM a navíc privátní klíč držíme odděleně, takže pracujeme se dvěma soubory: cert.pem a privklic.pem. V Ubuntu (zkouším to na Ubuntu – a nevím, zda je to stejné na jiných Linuxech) existují 2 oddělená úložiště:
- jedno pro privátní klíče: /etc/ssl/private
- a druhé pro certifikáty: /etc/ssl/certs
Pro své Windows servery získávám certifikáty od veřejné CA autority ve formě dvojice PEM souborů a potřebné PFX vytvořím za pomoci utility openssl. Předpokládám, že existuje i analogický obrácený postup…
Název PEM souboru pro příslušnou sajtu (site) získám z konfiguračního souboru sajty:
- /etc/apache2/sites-available/<nazev-sajty>.conf
V adresáři /etc/apache2/sites-enabled se nacházejí symbolické linky na konfigurační soubory sajt, takže se můžete podívat i tam. Předpokládám, že symbolické linky jsou vytvářené při zpracování příkazu
- sudo a2ensite <nazev-sajty>.conf
čili při povolování (enejblování) sajty.
V konfiguraci sajty s SSL připojením byste měli mít tyto řádky:
# SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on # A self-signed (snakeoil) certificate can be created by i> # the ssl-cert package. See # /usr/share/doc/apache2/README.Debian.gz for more info. # If both key and certificate are stored in the same file,> # SSLCertificateFile directive is needed. SSLCertificateFile /etc/ssl/certs/cert.pem SSLCertificateKeyFile /etc/ssl/private/privklic.pem
Je dobré mít na paměti, že jak úložiště certifikátů, tak úložiště privátních klíčů mají vysoké nároky na oprávnění, takže soubory získané pomocí SMB klienta musíte nejdříve uložit do např. domovského adresáře:
luser@linux-server:~$ luser@linux-server:~$ smbclient //windows-server/share -U wuser@domena Enter wuser@domena's password: Try "help" to get a list of possible commands. smb: \> ls *.pem cert.pem A 0 Thu Mar 17 15:01:44 2022 privklic.pem A 0 Thu Mar 17 15:00:38 2022 421818111 blocks of size 4096. 270319859 blocks available smb: \> mget *.pem Get file cert.pem? y getting file \cert.pem of size 0 as cert.pem (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec) Get file privklic.pem? y getting file \privklic.pem of size 0 as privklic.pem (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec) smb: \> q luser@linux-server:~$
kde luser je username na Linuxu (Ubuntu) a wuser je username na Windows serveru, ze kterého kopírujeme certifikát a privátní klíč. Nyní s privilegovanými credentials přesuneme certifikát a privátní klíč do příslušných úložišť:
luser@linux-server:~$ luser@linux-server:~$ sudo mv certifikat.pem /etc/ssl/certs/cert.pem [sudo] password for luser: luser@linux-server:~$ sudo mv privklic.pem /etc/ssl/private/privklic.pem luser@linux-server:~$ ls *.pem ls: cannot access '*.pem': No such file or directory luser@linux-server:~$
Příkazem sudo mv nejenomže vyfičíme certifikát a privátní klíč z domovského adresáře, ale můžeme i přejmenovat soubory podle našich politik….
…. and that’s all, folks !
Hodil by se restart apache2, čili: sudo systemctl restart apache2