Výměna HTTPS certifikátu
IAM appliance vystavuje své služby na HTTPS rozhraní. Webové rozhraní je realizováno serverem nGinx.
Při čisté instalaci nGinx (balíček iam-app-web-proxy
) dochází k vygenerování self-signed certifikátu dle hostname serveru.
Self-signed certifikát je pro většinu nasazení nevhodný, a je proto potřeba jej vyměnit.
-
Požadavky na certifikát a klíč.
-
Nahrání privátního klíče a certifikátu (případně s chainem) do appliance.
-
Výměna certifikátu a klíče.
-
Uložení root certifikátu do úložiště důvěryhodných certifikátů.
-
Restart služby
iam-web-proxy
a návazných služeb. -
Kontrola.
Požadavky na certifikát a klíč
-
Privátní klíč je ve formátu PEM bez hesla, velikost 2048b (v případě RSA klíče) a více.
-
Podpisový algoritmus certifikátu je alespoň SHA-256.
-
Certifikát je ve formátu x509 PEM, podporována jsou x509v3 rozšíření.
-
Certifikát serveru má vyplněno nejen
CN
, ale i x509 rozšířenísubjectAltName
, moderní webové prohlížeče už kCN
velmi často vůbec nepřihlížejí. -
Pokud je nutno dodat i certificate chain (mezilehlé certifikační autority), jsou jejich certifikáty umístěny ve stejném souboru, také ve formátu PEM. Pořadí certifikátů v souboru pak je shora dolů:
-
Certifikát serveru.
-
Certifikát CA, která vydala certifikát serveru.
-
Případně další certifikáty CA jdoucí popořadě podle toho, jak jdou v chainu důvěry směrem nahoru.
-
-
[root@localhost secrets]# cat current_web_cert.key -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAwuOKM39s1uqEVq+ngNaGgqpPNAPfu1NF7GThfPGgCa3e0Xjf /gRZZygwqMnWfPTcgxDkK43xWo95nMmnAzsjn5S9/PX1fP+Sb4AYn+a8EOaZxy9x ... zkráceno... MjvCAQKBgBnOMJTEtWTAXtQo6gR5q5WSvGhv/xOg+VymOYNIiIoOg49dfieEtOCN 3D53ENWGL60+C4fkY6lQw1Vog2rJ5Gm16XA6iAxBNI1Wf6zrZsMmKbyPtXFHAyZc imNeWy2jGCnsGft1diBBrgUxPCz1k+gLlWIvqs4Nr9tx+hzTR0sn -----END RSA PRIVATE KEY-----
[root@localhost secrets]# cat current_web_cert.crt -----BEGIN CERTIFICATE----- MIICzjCCAbagAwIBAgIUQbCKf99dSmVlucvY8TyQGVQieNgwDQYJKoZIhvcNAQEL BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIxMDEyMDE0NDAxMFoXDTIyMDEy ... zkráceno ... SvOiau16nBSe5wHzFqX3M1HsJp9X+j3PjOtGPDqf3mG6/NYzgqFlHC0bWCnMEZtl sGh4k0AB/W7AxTKN4KwgY7YaqFwcLZveHcbSSztlmNt9YXIhNXzWvuYIbuyhBMuW 04k= -----END CERTIFICATE----- // zde případně následují certifikáty CA z řetezu důvěry
Nahrání privátního klíče a certifikátu na server
Na server je nutno nahrát soubory pomocí protokolu SCP, na Linuxu běžným příkazem scp
, na Windows například klientskou utilitou WinSCP.
Pomocí vybrané utility nahrajte certifikát a klíč do adresáře na serveru, cílovým adresářem je /data/volumes/web-proxy/secrets/
.
Výměna certifikátu a klíče
Nahráli jsme certifikát a klíč na server, máme zde tedy dva soubory nové (https_new.*
) a dva původní (current_web_cert.*
).
[root@localhost ~]# cd /data/volumes/web-proxy/secrets/ [root@localhost secrets]# ll total 16 -rw-r--r--. 1 root root 1034 Jan 20 14:40 current_web_cert.crt -rw-------. 1 root root 1675 Jan 20 14:40 current_web_cert.key -rw-r--r--. 1 root root 1034 Jan 28 09:33 https_new.crt -rw-------. 1 root root 1675 Jan 28 09:33 https_new.key
V adresáři /data/volumes/web-proxy/secrets/
zazálohujeme původní klíč a certifikát a nasadíme nové.
[root@localhost secrets]# cp current_web_cert.key current_web_cert.key.orig [root@localhost secrets]# cp current_web_cert.crt current_web_cert.crt.orig [root@localhost secrets]# mv https_new.crt current_web_cert.crt mv: overwrite 'current_web_cert.crt'? y [root@localhost secrets]# mv https_new.key current_web_cert.key mv: overwrite 'current_web_cert.key'? y
Opravíme vlastnictví, práva a labely na souborech.
[root@localhost secrets]# chown root:root current_web_cert.crt current_web_cert.key [root@localhost secrets]# chmod 644 current_web_cert.crt [root@localhost secrets]# chmod 600 current_web_cert.key [root@localhost secrets]# restorecon current_web_cert.crt current_web_cert.key
Uložení root certifikátu do úložiště důvěryhodných certifikátů
Některé služby IAM appliance využívají ke komunikaci mezi sebou HTTPS komunikaci skrze službu iam-web-proxy
. V případě výměny certifikátu na webové proxy může dojít k přerušení vzájemné komunikace služeb, a tedy k nedostupnosti některých částí IAM appliance pro uživatele.
Pokud jste mezi důvěryhodné certifikáty v cestě |
[root@localhost secrets]# cp current_web_cert.crt /data/volumes-shared/cacerts/nejake_jeste_neexistujici_jmeno.crt
[root@localhost secrets]# nano /data/volumes-shared/cacerts/nejake_jeste_neexistujici_jmeno.crt
Restart služby iam-web-proxy a návazných služeb
Nakonec restartujte službu webové proxy. V tento okamžik může dojít k částečnému výpadku služeb appliance.
[root@localhost ~]# systemctl restart iam-web-proxy
Pokud jste mezi důvěryhodné certifikáty v cestě |
Pokud není funkční autentizace např. do CzechIdM komponenty, je nutné komponentu restartovat. Proveďte restart Java komponent appliance.
[root@localhost ~]# systemctl restart iam-czechidm iam-cas