KeyCloak提供用户联合会,强大的身份验证,用户管理,精细授权等等。
这是一个指南,可以使用免费的让我们加密SSL证书启用HTTPS访问KeyCloak服务器。让我们加密的美丽是它的易用性和免费的事实!
本指南假设您已经使用official guide for bare metal installs在/opt/keycloak/
上安装了KeyCloak,现在您要启用HTTPS访问。您需要具有版本 20 或更高。
在下面的所有说明中,请确保将<DOMAIN>
替换为要使用的实际域。本指南中的所有命令必须以root。
1.安装certbot
首先,您需要安装certbot
。这取决于您正在使用的Linux发行版。
例如,对于基于APT的发行版,例如Debian或Ubuntu,您可以运行以下内容:
apt install certbot
2.创建HTTPS证书
- 设置证书:
$ certbot certonly --standalone --preferred-challenges http -d <DOMAIN>
3.配置keycloak以使用让我们加密证书
- 更改配置:
vi /opt/keycloak/conf/keycloak.conf
- 在该文件中添加或更新以下行:
https-certificate-file=/etc/letsencrypt/live/<DOMAIN>/cert.pem
https-certificate-key-file=/etc/letsencrypt/live/<DOMAIN>/privkey.pem
hostname=<DOMAIN>
https-port=443
http-port=80
- 更新KeyCloak配置:
$ /opt/keycloak/bin/kc.sh build
- 你完成了!现在,您可以运行以下命令,现在应该可以通过https从浏览器访问keycloak:
$ /opt/keycloak/bin/kc.sh start
4.可选:将KeyCloak设置为SystemD服务
官方指南故意离开此开放式,因为您可能需要多种方式处理KeyCloak服务器的生命周期。但是,我认为一种很好的方法是只使用systemd。
4.1。设置SystemD服务
- 创建用户和组:
$ useradd -g keycloak keycloak
- 提供证书的访问:
$ chmod 0755 /etc/letsencrypt/{live,archive}
$ chgrp keycloak /etc/letsencrypt/{live,archive}
$ chgrp -h keycloak /etc/letsencrypt/live/<DOMAIN>/privkey.pem
- 访问KeyCloak目录:
$ chown -R keycloak:keycloak /opt/keycloak/
- 创建SystemD服务:
$ vi /etc/systemd/system/keycloak.service
- 将以下内容写入文件中。您可能需要将所选数据库服务添加到
After
行,例如postgresql.service
或mysql.service
。
[Unit]
Description=Keycloak Application Server
After=syslog.target network.target
[Service]
Type=idle
User=keycloak
Group=keycloak
LimitNOFILE=102642
ExecStart=/opt/keycloak/bin/kc.sh start --optimized
StandardOutput=append:/var/log/keycloak.log
StandardError=inherit
RestartSec=2s
Restart=always
AmbientCapabilities=CAP\_NET\_BIND\_SERVICE
[Install]
WantedBy=multi-user.target
- 重新加载Systemd配置和启动服务:
$ systemctl daemon-reload
$ systemctl start keycloak.service
4.2。更新证书时自动keycloak服务器重新启动
- 更新证书后,将Certbot重新启动KeyCloak:
$ cd /etc/letsencrypt/renewal-hooks/deploy
$ vi restart-keycloak.sh
- 写下这些内容:
#!/bin/sh
systemctl restart keycloak
- 使脚本可执行:
$ chmod +x restart-keycloak.sh
你完成了!现在,KeyCloak设置为SystemD服务,并在机器启动时开始。