keycloak单机环境的部署和部分问题总结

这个东西存在的意义:

我个人理解的是springboot内置的一些安全措施太弱了,因此要用很多第三方的框架保证安全

配置

需要的环境清单
java
keycloak
mysql

1、java推荐1.8版本(至少要1.8)

java -version

keycloak单机环境的部署和部分问题总结_第1张图片

2、keycloak

解压到自己的目录,建议 /usr/local/keycloak

 tar -zxvf keycloak-3.4.0.Final.tar.gz 

keycloak单机环境的部署和部分问题总结_第2张图片

cd keycloak

在这里插入图片描述
由于需要自己导入java-connector.jar,可以提前下好,创建目录

mkdir -p modules/system/layers/base/com/mysql/main/

在这里插入图片描述

cd modules/system/layers/base/com/mysql/main/
ls
vim module.xml

将自己下载好的jar放到这个目录下
keycloak单机环境的部署和部分问题总结_第3张图片


<module xmlns="urn:jboss:module:1.3" name="com.mysql">
    <resources>
        <resource-root path="mysql-connector-java-8.0.24.jar"/>
    resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    dependencies>
module>

回到keycloak的根目录

vim standalone/configuration/standalone.xml 

主要的参数设置如下,修改为0.0.0.0可以让外机访问
keycloak单机环境的部署和部分问题总结_第4张图片
mysql的账号密码,keycloak数据库的ip在这里填写,因此数据库地址可以是远程的,我个人的是本机的因此只需要修改账户密码
keycloak单机环境的部署和部分问题总结_第5张图片
这些端口号可以自定义,默认也行,但是要避免和电脑内其他环境冲突
keycloak单机环境的部署和部分问题总结_第6张图片

回到keycloak的根目录,我按照网上初始化账户出现了问题,因此我建议这么运行

./bin/add-user.sh

在这里插入图片描述
然后按照指引填入(可能不是这个顺序) 账户:admin 密码:admin 确认密码:admin 组:master
弄完了就可以启动了
我选择后台启动

 nohup ./bin/standalone.sh $

即可启动成功


在keycloak根目录运行以下指令可以实时看是否报错

tail -f nohup.out

keycloak单机环境的部署和部分问题总结_第7张图片

检验

方法一

curl -XGET http://localhost:9080/auth/

这个需要电脑有curl环境
keycloak单机环境的部署和部分问题总结_第8张图片

方法二、

我们之前配置过0.0.0.0,因此可以通过自己的电脑来访问
keycloak单机环境的部署和部分问题总结_第9张图片
出来这个就算是快成功了,这时候点击Administration Console可以登录
keycloak单机环境的部署和部分问题总结_第10张图片

可能遇到的问题

1、点击Administration Console出现 We‘re sorry
这是因为keycloak默认是https的,因此需要修改mysql中keycloak部分数据的配置

use keycloak;
update REALM set ssl_required = 'NONE' where id = 'master';

然后重启keycloak,重启方式如下:

ps -ef | grep keycloak
kill -9 pid(前面keycloak的pid)
//进入keycloak根目录运行如下指令后台启动
nohup ./bin/standalone.sh $

2、自己的电脑无法访问页面
解决思路:
1、先 ping以下服务器ip看是否ping通
2、远程服务器是否开放相关端口|是否开启了防火墙
3、看keycloak的相关日志,可能是配置的mysql写错了,也可能是本身在配置文件里面的ip写错了不是0.0.0.0,导致除了服务器本机其他ip不能访问。log日志里面有运行的日志,mysql相关配置错误,会在日志里面报java exception

你可能感兴趣的:(java)