Nastaveni HTTPS
HTTPS se pro Portaro nastavuje buďto přímo v portaru, nebo, pokud na reverzní proxy, pokud se používá.
Portaro za reverzní proxy
Pokud Portaro běží za reverzní proxy (Apache, Nginx, HAProxy), HTTPS je nutné nastavit na ní. Komunikace v rámci vnitřní sítě pak probíhá nešifrovaně.
V Portaru je jen třeba nastavit ini OPAC.BehindReverseProxy
na ANO
.
Veškeré nastavení (let's encrypt nebo vlastní certifikáty) pak řeší knihovna sama.
Portaro bez reverzní proxy (samostatně)
Let's encrypt
Portaro podporuje automatické HTTPS pomocí Let's encrypt. Certifikáty se pak automaticky obnovují každé 3 měsíce.
- Ini
OPAC_WEB.InternalHttpsKeysSource
naacme
- tím se zapne načítání certifikátů uložených přes acme - Zapnout ini
OPAC_WEB.InternalHttpsEnabled
- tím se zapne SSL a naslouchání na portu 443, což vyžaduje restart - Zapnout ini
OPAC_WEB.AcmeAuto
- tím se zapne automatická kontrola platnosti a obnovování acme certifikátů a následné automatické restartování portara - UTIL -> Restart app
- Pokud https funguje, změnit http na https ini
OPAC.URL
a můžeme zakázat přístup přes http pomocíOPAC.ForceHttps
Certifikát a klíč v souborech PEM
Nejčastější varianta, pokud má knihovna své certifikáty. Potřebujeme 3 věci:
- certifikát a mezilehlý CA certifikát
- buďto je v jednom "chain" souboru nebo ve dvou souborech, (nejčastěji s koncovkou .pem nebo .cer) obsahem obou je plaintext obsahující
-----BEGIN CERTIFICATE-----
- buďto je v jednom "chain" souboru nebo ve dvou souborech, (nejčastěji s koncovkou .pem nebo .cer) obsahem obou je plaintext obsahující
- privátní klíč
- v textovém souboru (nejčastěji s koncovkou .pem nebo .key) obsahujícím
-----BEGIN RSA PRIVATE KEY-----
, což značí nezašifrovaný privátní klíč - nebo textovém v souboru obsahujícím
-----BEGIN ENCRYPTED PRIVATE KEY-----
, což značí zašifrovaný privátní klíč, který je třeba dešifrovat, viz níže.
- v textovém souboru (nejčastěji s koncovkou .pem nebo .key) obsahujícím
- Ini
OPAC_WEB.InternalHttpsKeysSource
nafileAndKeyFile
- Zapnout ini
OPAC_WEB.InternalHttpsEnabled
- tím se zapne SSL a naslouchání na portu 443, což vyžaduje restart - Nastavit cestu k certifikátu (nebo k celému chainu, pokud je v jednom souboru) do ini
OPAC_WEB.InternalHttpsCertificateLocation
- Nastavit cestu ke klíči do ini
OPAC_WEB.InternalHttpsPrivateKeyLocation
- Pokud je zvlášť soubor s certifikátem a soubor s chainem, nastavit chain do ini
OPAC_WEB.InternalHttpsCACertificateLocation
- UTIL -> Restart app
- Pokud https funguje, změnit http na https ini
OPAC.URL
a můžeme zakázat přístup přes http pomocíOPAC.ForceHttps
Certifikát a klíč v keystoru (formát p12, pfx)
- Ini
OPAC_WEB.InternalHttpsKeysSource
nakeystoreFile
- Zapnout ini
OPAC_WEB.InternalHttpsEnabled
- tím se zapne SSL a naslouchání na portu 443, což vyžaduje restart - Nastavit cestu ke keystoru do ini
OPAC_WEB.InternalHttpsKeystoreLocation
- Nastavit heslo ke keystoru do ini
OPAC_WEB.InternalHttpsKeystorePassword
- Pokud je v keystoru více cert-key párů, je třeba portaru říci, který má použít (pod kterým aliasem ho najde) v ini
OPAC_WEB.InternalHttpsKeystoreKeyAlias
- UTIL -> Restart app
- Pokud https funguje, změnit http na https ini
OPAC.URL
a můžeme zakázat přístup přes http pomocíOPAC.ForceHttps
Převody formátů
Dešifrování PEM privátního klíče
Pokud mame klic v souboru encrypted.pem ve kterem je -----BEGIN ENCRYPTED PRIVATE KEY-----
a heslo, příkazem
openssl rsa -in encrypted.pem -out decrypted.pem
Ziskáme klíč v souboru decrypted.pem obsahující -----BEGIN RSA PRIVATE KEY-----