linux 搭建Shibboleth sp服务 并整合Apache+tomcat

1、搭建linux虚拟机

搭建centos 7步骤

2、安装Apache服务

yum install httpd* -y

查看apache配置是否有问题

apachectl configtest

修改Apache的httpd.conf配置文件

vi /etc/httpd/httpd.conf

修改ServerName为服务器IP
如果修改根文件夹位置 DocumentRoot "/var/web/ROOT" 可能导致请求访问不到
解决方法:

chcon -R --type=httpd_sys_rw_content_t  目录

3、安装shibboleth sp服务

通过yum源的方式安装

wget [http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/security:shibboleth.repo](http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/security:shibboleth.repo) -P /etc/yum.repos.d

如果没有wget,需要安装一下

yum -y install wget

安装shibboleth sp

yum install shibboleth

启动sp 和 apache服务

systemctl start shibd
systemctl enable shibd
systemctl restart httpd

查看shibboleth sp配置是否有问题

shibd -t
shibd -t只是对配置文件的测试。它不知道服务是使用环境参数Environment=LD_LIBRARY_PATH=/opt/shibboleth/lib64启动的。
检查一下:cat /lib/systemd/system/shibd.service你的服务应该已经有了这个参数,所以Shibboleth服务实际上不会有这个问题。
因此,shibd -t在这种意义上是有缺陷的。它不会正确检查您的配置。

要让shibd -t执行它应该做的事情,您必须使用以下命令调用它:LD_LIBRARY_PATH=/opt/shibboleth/lib64 /usr/sbin/shibd -t

访问shibboleth sp测试网址看是否成功

curl http://localhost/Shibboleth.sso/Status

如果访问不到可能是因为shibboleth2.xml文件中的证书加密没有关闭
将shibboleth2.xml 中handlerSSL="true" true改为 false 关闭证书加密

4、安装配置tomcat

运行命令解压

tar -zxvf tomcat.tar.gz -C /usr/local 

Tomcat 配置文件server.xml中打开 8009端口注释,address为服务器IP跟步骤5中的worker.controller.host一致


image.png

在HOST标签内增加下面配置



image (1).png

5、配置tomcat和apache连接

安装编译mod_jk

下载mod_jk包地址:https://tomcat.apache.org/download-connectors.cgi

解压压缩包

tar -zxvf tomcat-connectors-1.2.42-src.tar.gz

进入解压目录,在进入native目录
查找本地apxs位置

find / | grep apxs

安装

./configure --with-apxs=/usr/bin/apxs   (apxs路径为上面查到的位置)
make
make install

cd apache-2.0 如果目录中有mod_jk.so文件 代表成功

如果上面命令报错的话可能因为没有安装gcc,运行安装

yum install gcc gcc-c++ -y

ps:如果没用apxs的话,需要先安装

 # cd /etc/   
# vi yum.conf   
// 如果有关于 apache or httpd 的 “exclude”这样一行,把它注释掉;如果没有,就直接退出就行   
// 保存并退出  
# yum install apr-util-devel   
# yum install httpd-devel 

在httpd的conf路径下创建两个文件,分别是mod_jk.conf 和 workers.properties
编辑mod_jk.conf

#加载 mod_jk.so 文件,放置在最上
LoadModule jk_module /etc/httpd/modules/mod_jk.so
#加载 tomcat 参数配置文件
JkWorkersFile /etc/httpd/conf/workers.properties
#日志保存文件
JkLogFile /var/log/httpd/mod_jk.log
#日志等级
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkRequestLogFormat "%w %V %T"
#######请求拦截, controller负载均衡控制器名称
JkMount /*.jsp controller
############## end #######################

编辑workers.properties

#server 
 worker.list = controller

#========tomcat======== 
 worker.controller.port=8009  #端口号与tomcat一致 
 worker.controller.host=127.0.0.1 #服务器IP
 worker.controller.type=ajp13 
 worker.controller.lbfactor = 1
配置httpd

最下面增加下面代码
Include /etc/httpd/conf/mod_jk.conf

测试

启动httpd和tomcat服务
新建jsp文件 index.jsp 内容如下

<%
System.out.println( "Evaluating date now" );
java.util.Date date = new java.util.Date();
%>
Hello! The time is now <%= date %>

访问结果80端口和8080端口的index.jsp同为经过处理的jsp页面即为正确,如下


image (2).png

你可能感兴趣的:(linux 搭建Shibboleth sp服务 并整合Apache+tomcat)