如何使用我们使用KeyCloak加密证书
#linux #java #keycloak #letsencrypt

Let's Encrypt + Keycloak

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.servicemysql.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服务,并在机器启动时开始。