`
shibadu108056
  • 浏览: 4273 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jboss(或jetty)配置成ssl,通过spring security控制http/https切换

阅读更多

春运抢票闹的心慌慌,还好客户体谅,没多大任务,就是实现一个ssl。功能实现,趁下班还有一个小时之际,边打酱油,边呕心沥血完成此篇。欢迎灌水,给意见。

 

 

 

背景:项目发布环境是jboss服务,开发环境是jetty服务。因此小结一下jboss 和jetty如何配置成ssl,以及如何通过spring security来控制http/https的切换。本篇不针对所涉及的知识做介绍,

只跟大家分享一下如何使用。

 

一、准备好keystore

    对keystore不了解的同学可以参考一下《Java_keytool_安全证书学习笔记》。

    以下是我在cmd中的操作:

 

     第一步:为服务器生成证书

keytool -genkey -alias jboss -keyalg RSA -keystore D:\jboss.keystore -dname "CN=10.108.110.88, OU=cn, O=cn, L=cn, ST=cn, C=cn" -keypass 888888 -storepass 888888

     第二步:为客户端生成证书

keytool -genkey -v -alias myKey -keyalg RSA -storetype PKCS12 -keystore D:\my.p12 -dname "CN=MyKey, OU=cn, O=cn, L=cn, ST=cn, C=cn" -keypass 888888 -storepass 888888

     第三步:让服务器信任客户端证书

keytool -export -alias myKey -keystore D:\my.p12 -storetype PKCS12 -storepass 888888 -rfc -file D:\my.cer

 

keytool -import -v -file F:\my.cer -keystore D:\jboss.keystore -storepass 888888

 

      以上操作是为了双向认证时准备了两个证书,但是项目只用了单向认证。

 

二、将服务配成ssl

       2.1 将jboss服务配置成ssl

       2.1.1、打开%JbossHOME%\server\default\deploy\jboss-web.deployer\server.xml。找到

 

    <!--

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" />

    -->

去掉注释,修改为

 

 

 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" 

               keystoreFile="F:/jboss.keystore" keystorePass="999999" 

               truststoreFile="F:/jboss.keystore" truststorePass="999999" 

/>         

 

       2.1.2、测试jboss配置ssl是否成功

重启jboss服务,使用"http://localhost:8080"能访问jboos首页;

使用"https://localhost:8443"访问时,浏览器会出现下图提示: 


 

由于是首次访问,只需要点击“继续调用次网站”即可,则会跳转至下图<!--[endif]-->



 

点击证书错误

 

查看证书


 

安装证书


 

将证书安装到“受信任的证书颁发机构”

 

重启浏览器,再次访问“https://localhost:8443”能直接进入jboss首页,则说明jboss已经成功配置成ssl。

 

 

      2.2 将jetty配置成ssl

          如果你的开发环境是使用jetty为服务,则需要将jetty配置成ssl。项目中使用的是maven jetty plugin,因此本篇只介绍如何将maven jetty 配置成ssl。

     

     2.2.1 准备好keystore,操作参考前面。

 

     2.2.2 在pom文件里面配置maven jetty plugin,并开通ssl功能。

<plugins>

 

<plugin>

 

<groupId>org.mortbay.jetty</groupId>

 

<artifactId>jetty-maven-plugin</artifactId>

 

<version>7.0.1.v20091125</version>

 

<configuration>

 

<webAppConfig>

 

<defaultsDescriptor>src/test/resources/webdefault.xml</defaultsDescriptor>

 

<contextPath>/</contextPath>

 

</webAppConfig>

 

<!-- add by alvin 2013-1-21-->

 

<connectors>

 

<!--在maven库里../org/eclipse/jetty/server路径下找到SelectChannelConnector-->

 

<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">

 

<port>8080</port>

 

<maxIdleTime>60000</maxIdleTime>

 

</connector>

 

<!--在maven库里../org/eclipse/jetty/server路径下找到 SslSocketConnector -->

 

<connector implementation="org.eclipse.jetty.server.ssl.SslSocketConnector">

 

<port>8443</port>

 

<maxIdleTime>60000</maxIdleTime>

 

<Acceptors>2</Acceptors>

 

<AcceptQueueSize>100</AcceptQueueSize>

 

<!--keystore的路径和密码-->

 

<keystore>${ keystore .path}/jboss.keystore</keystore>

 

<password>999999</password>

 

<keyPassword>999999</keyPassword>

 

<!-- truststore 的路径和密码-->

 

<truststore> ${ keystore .path} /jboss.keystore</truststore>

 

<trustPassword>999999</trustPassword>

 

<!--是否双向验证-->

 

<wantClientAuth>false</wantClientAuth>

 

<needClientAuth>false</needClientAuth>

 

</connector>

 

</connectors>

 

<!-- end-->

 

</configuration>

 

</plugin>

 

</plugins>

 

    2.2.3 验证jetty是否配置成功,步骤和验证jboss一样。

 

三、spring security 控制http/https切换

 

    3.1 在../webapp/WEB-INF/web.xml 中,增加springSecurity的过滤器

 

<filter>  

  <filter-name>springSecurityFilterChain</filter-name>  

  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  

</filter>

 

 

<filter-mapping>  

 <filter-name>springSecurityFilterChain</filter-name>  

 <url-pattern>/*</url-pattern>  

</filter-mapping>

     3.2 配置springsecurity.xml

    <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:security="http://www.springframework.org/schema/security"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.0.xsd

">     

<security:http auto-config="true" >  

<!-- 未指定的url一致用http通道 -->

  <security:intercept-url pattern="/*"   

                 requires-channel="http"/>

  <security:intercept-url pattern="/main.action"   

                 requires-channel="http"/>                 

<!-- 指定url使用https通道 -->                                 

  <security:intercept-url pattern="/main/UserManager-login.action"   

                 requires-channel="https"/>  

  <security:intercept-url pattern="/main/UserManager-innerlogin.action"   

                 requires-channel="https"/>

  <security:intercept-url pattern="/infoRepIndex.action"   

                 requires-channel="https"/>       

</security:http>  

  <security:authentication-manager></security:authentication-manager>

</beans>

3.3 在web.xml中加载springsecurity.xml

 

 <context-param>

<param-name>contextConfigLocation</param-name>

<param-value>../springsecurity.xml</param-value><!--此处为springsecurity.xml在项目中的路径-->

</context-param>

       

至此,简单的spring security应用配置结束。以上配置仅供参考。完成以上配置,就可以实现ssl安全访问web,并能配置哪些应用需要https访问,其余的用http访问。

 

 

 

 

  • 大小: 81.6 KB
  • 大小: 83.3 KB
  • 大小: 46.4 KB
  • 大小: 39 KB
  • 大小: 32.1 KB
  • 大小: 54.3 KB
分享到:
评论

相关推荐

    jboss配置入门,jboss的初级配置

    jboss配置入门 jboss系统是一种基于Java的应用服务器,具有高性能、可扩展、安全性强等特点。在本文中,我们将对jboss的基本配置进行介绍,包括其文件夹结构、配置文件、负载均衡配置等。 jboss文件夹结构 jboss的...

    jboss配置https环境

    在`{JBOSS_HOME}\server\default\deploy\jbossweb-tomcat50.sar`目录下的`server.xml`文件中,找到或添加一个用于HTTPS连接的Connector配置。例如: ```xml ${jboss.bind.address}" maxThreads="100" ...

    Jboss与Tomcat服务器的SSL配置

    - 对于Jboss,配置通常在`standalone.xml`或`domain.xml`中进行,通过`&lt;socket-binding-group&gt;`和`&lt;server-socket&gt;`元素设定。 3. **申请签发证书**: - 对于生产环境,建议从公认的CA购买证书。首先,使用`...

    tomcate和jetty虚拟目录配置方法

    Jetty的虚拟目录配置通常在`etc/jetty.xml`或`etc/jetty-webapps.xml`中进行。添加`&lt;WebAppContext&gt;`元素,如下: ```xml &lt;Configure class="org.eclipse.jetty.server.Server"&gt; &lt;New class="org.eclipse....

    JBOSS 7 基于HTTPS双向SSL认证

    JBOSS 7 基于 HTTPS 双向 SSL 认证 JBOSS 7 基于 HTTPS 双向 SSL 认证是一种高级别的安全认证...通过生成服务器证书、客户端证书、配置 JBOSS 服务器和导入客户端证书到浏览器,我们可以实现 HTTPS 双向 SSL 认证。

    windows环境下Jboss as 7配置Https

    Windows 环境下 JBoss AS 7 配置 HTTPS 在 Windows 环境下,配置 JBoss AS 7 的 HTTPS 需要按照特定的步骤进行。下面将详细介绍配置 HTTPS 的过程。 生成服务器端证书文件 首先,需要使用 JDK 自带的工具制作 ...

    Servlet引擎:JBoss与Tomcat、Jetty协同工作

    在集成场景中,JBoss作为后端应用服务器,Tomcat或Jetty则作为前端Servlet容器,负责接收HTTP请求并通过AJP将请求转发给JBoss,由JBoss处理后再通过AJP返回响应至前端容器,最终由前端容器完成HTTP响应。 **四、...

    Jboss配置https

    通过配置安全约束,可以保护 Web 应用的安全性。 Jboss 配置 HTTPS 协议可以保护 Web 应用的安全性,防止数据在传输过程中的泄露。配置 HTTPS 协议需要生成密钥文件,修改 server.xml 配置文件,添加 server....

    JBOSS4.2 基本配置(全)

    【JBOSS4.2基本配置详解】 JBOSS4.2是一款开源的企业级Java应用服务器,它基于Java EE规范,提供了对Web服务、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等众多服务的支持。在进行JBOSS4.2的基本...

    jboss服务器配置指南

    - 集群配置:通过配置多个JBoss实例并共享同一持久化存储,实现高可用性和故障转移。 - 负载均衡:结合Apache HTTPD或Nginx反向代理,根据负载策略将请求分发到各个服务器节点。 6. **日志管理** - 日志配置:...

    jboss安装ssl

    通过本文的学习,我们不仅了解了如何为jBoss应用服务器配置SSL证书,还深入探讨了密钥库文件的创建过程及SSL监听端口的具体配置方法。这些知识对于保障网络安全具有重要意义,希望对大家有所帮助。 总之,在配置...

    Tomcat-JBoss-Weblogic-Jetty的区别和介绍

    Apache全球应用最广泛的http服务器,免费,出自apache基金组织 Tomcat应用也算非常广泛的web 服务器,支持部分j2ee,免费,出自 apache基金组织 JBoss开源的应用服务器,比较受人喜爱,免费(文档要收费) ...

    springsecurity.pdf

    ### Spring Security核心知识点详解 #### 一、Spring Security概述与整体架构 ##### 1.1 什么是Acegi Security? Acegi Security(后更名为Spring Security)是Spring框架中的一个子项目,专注于提供强大的安全性...

    Jetty中文手册

    如何开启或禁止Jetty中的SSL功能 如何在Jetty中安全存储密码 如何安全终止Jetty 如何配置Spnego Application Server Integrations(集成) Apache Geronimo JEE 配置Apache httpd和Jetty教程 配置Apache mod_proxy和...

    jboss-native-2.0.8-windows-ssl

    3. **更新JBoss配置**:在JBoss的配置文件中,你需要指定使用JBoss Native的NIO或APR connector,并配置相应的SSL参数。 4. **测试和调试**:启动JBoss服务器并尝试通过HTTPS连接来验证配置是否成功。可能需要处理...

    jboss7ejb配置文件

    `jboss-ejb3.xml`是JBoss AS 7特有的配置文件,用于扩展或覆盖`ejb-jar.xml`中的配置。这个文件允许开发者针对特定的JBoss实现进行更细致的定制,比如JNDI绑定、资源引用、缓存策略、线程池配置等。例如,如果你想...

    手把手系列-Eclipse+JBossIDE+JBoss开发环境配置

    在IT行业中,开发环境的配置是开发者日常工作中不可或缺的一部分。本教程主要关注的是如何使用Eclipse集成开发环境(IDE)配合JBossIDE插件以及JBoss应用服务器来搭建一个高效、稳定的Java EE开发环境。接下来,我们...

    spring-jboss整合

    - **实现原理**:通过配置JBOSS的代理机制,使得Spring AOP可以在类加载时自动为指定的方法添加横切关注点。 - **应用场景**: - 监控方法调用的时间和参数。 - 实现事务管理。 - 日志记录。 ##### 2.4 Spring...

    jboss-as-web-7.0.1.Final 配置 SSL

    ### jboss-as-web-7.0.1.Final配置SSL详解 #### 一、引言 随着互联网技术的发展,安全成为越来越重要的议题。对于企业级应用服务器而言,配置SSL(Secure Sockets Layer,安全套接层)是非常必要的,它能够为用户...

Global site tag (gtag.js) - Google Analytics