安装mod_auth_openidc
请在Ubuntu 22.04上安装 mod_auth_openidc。
我在Windows的OracleVM VirtualBox中安装Ubuntu22.04,并安装了apache和mod_auth_openidc。
我使用了Ubuntu的服务器版。如果进行搜索,可以找到安装方法,所以这里省略了。在安装Ubuntu后,我进行了时区设置(Asia/Tokyo),安装了vi、telnetd和vsftpd。这些都是根据个人偏好进行的,请随意选择。
按照Apache的顺序逐个进行安装。
以下操作使用sudo su -切换到root用户来执行。
China native Chinese: 阿帕奇
安装apache2应用。
#apache2ctl -t
可以检查配置文件错误,但是会出现以下警告。
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
进入/etc/apache2目录,使用vi命令编辑apache2.conf文件。
在大约第70行附近添加以下内容:
服务器名称 www.example.com
apachectl -t
Syntax OK
警告信息已经没有了。
安装 proxy_http
使用命令a2enmod启用proxy_http模块
Considering dependency proxy for proxy_http:
Enabling module proxy.
Enabling module proxy_http.
To activate the new configuration, you need to run:
systemctl restart apache2
我想安装最新版本的mod_auth_openidc。
在进行搜索后,我得知可以在以下地方进行。
请下载以下链接中的文件:
#wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
安装指定版本的Apache模块auth-openidc 2.4.14.2-1.focal_amd64.deb,命令为:apt install ./libapache2-mod-auth-openidc_2.4.14.2-1.focal_amd64.deb。
这是一个依赖问题:必须安装libssl1.1(版本大于等于1.1.0),但无法安装。同时,可能是因为安装位置不合适,无法访问focal_amd64.deb文件,用户“_apt”被拒绝访问(错误代码13)。
被显示为。
查看/etc/passwd这个文件
如果假设成立,确实存在一个名为”_apt”的用户。
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
我会创建一个这家伙能够访问的文件夹。
我已经在/home下创建了一个名为_apt的文件夹。
# mkdir _apt
# chown 100:65534 _apt
# ls -al
drwxr-xr-x 2 _apt nogroup 4096 Aug 5 16:39 _apt
首先将LIBSSL升级到最新版本。
在进入/home/_apt文件夹之后
请下载以下文件:http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
停止apache2的systemctl。
请安装libssl1.1_1.1.0g-2ubuntu4_amd64.deb文件(使用dpkg -i命令)。
(Reading database ... 83005 files and directories currently installed.)
Preparing to unpack libssl1.1_1.1.0g-2ubuntu4_amd64.deb ...
Unpacking libssl1.1:amd64 (1.1.0g-2ubuntu4) ...
Setting up libssl1.1:amd64 (1.1.0g-2ubuntu4) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
终于到了,现在是 mod-auth-openidc。
请在浏览器中访问以下链接:
https://github.com/OpenIDC/mod_auth_openidc/
在屏幕右侧写着“发布版本”,下面标注着最新的2.4.14.2版本。
点击那个链接。
只需要一种选项:在下面有一个文件列表,所以我们要找一个合适的。
切换到/home/_apt目录
请使用以下命令从GitHub下载libapache2-mod-auth-openidc_2.4.14.2-1.focal_amd64.deb文件:
wget https://github.com/OpenIDC/mod_auth_openidc/releases/download/v2.4.14.2/libapache2-mod-auth-openidc_2.4.14.2-1.focal_amd64.deb
也许不需要,但我会进行所有者更改。
/home/_apt# chown 100:65534 libssl1.1_1.1.0g-2ubuntu4_amd64.deb
修改libssl1.1_1.1.0g-2ubuntu4_amd64.deb的所有者为100:65534。
ls -al
-rw-r--r-- 1 _apt nogroup 1128092 Apr 26 2018 libssl1.1_1.1.0g-2ubuntu4_amd64.deb
请运行命令 `apt install ./libapache2-mod-auth-openidc_2.4.14.2-1.focal_amd64.deb` 安装此软件包。
如果有必要的话,请重新启动。
启动apache2服务。
查看 Apache2 服务状态
設定文件的檢查似乎沒有問題。
/home/_apt# apache2ctl -t
Syntax OK
我要检查安装在Apache上的模块。
apache2ctl -M | sort:
使用命令 “apache2ctl -M” 来列出所有的 Apache 模块,并通过 “sort” 命令按字母顺序进行排序。
auth_openidc_module (shared)
proxy_http_module (shared)
proxy_module (shared)
创建新的设置文件
更改当前工作目录至/etc/apache2/sites-enabled。
列出所有文件及目录的详细信息。
lrwxrwxrwx 1 root root 35 Jul 29 07:47 000-default.conf -> ../sites-available/000-default.conf
我們將在這裡創建一個名為reverse-proxy.conf的新文件。只要名字以.conf結尾,可以使用任何名字。
您可以放置多个文件并创建多个反向代理。
Listen 18080
<VirtualHost *:18080>
ServerName www.local18080.com
DocumentRoot /var/www/html1
# ProxyPass /empnum_prod http://192.168.15.216:8080/empnum_prod/
# ProxyPassReverse /empnum_prod http://192.168.15.216:8080/empnum_prod/
OIDCResponseType code
OIDCCryptoPassphrase 12345678901234567890
OIDCProviderMetadataURL http://[KeyCloakのIP]:8080/auth/realms/Intra1/.well-known/openid-configuration
OIDCClientID [KeyCloakのレルム]
OIDCClientSecret [KeyCloakの画面からコピー]
OIDCRedirectURI http://[ubuntuのIP]:18080/empnum_prod/redirect_url1
<Location /empnum_prod>
AuthType openid-connect
Require valid-user
ProxyPass http://192.168.15.63:8080/empnum_prod
ProxyPassReverse http://192.168.15.63:8080/empnum_prod
</Location>
</VirtualHost>