实现对ssl的支持

实现对SSL的支持

1.生成数字证书

生成步骤大概如下:

  • 设定数字证书的路径:D:\Program Files\httpssl\localhost.keystore
  • 利用jdk的keytool工具生成证书,大概涉及到的参数如下:
    • -keyalg 指定算法
    • -keysize 指定密钥大小,
    • -validity 指定有效期,单位为天
    • -alias 别名
    • -keypass 指定私钥使用密码
    • -keystore 指定密钥库名称
    • -storepass 证书库的使用密码,从里面提取公钥时需要密码
    • -dname CN拥有者名字,已办为网站名或IP+端口,如:www.baidu.com
    • OU组织机构名 O组织名 L城市 ST州或省 C国家代码
#执行生成命令
keytool -genkey -keystore "D:\Program Files\httpssl\dhope.keystore" -alias dhope -keyalg RSA


输入密钥库口令:
密钥库口令太短 - 至少必须为 6 个字符
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  dhope
您的组织单位名称是什么?
  [Unknown]:  xz.com
您的组织名称是什么?
  [Unknown]:  xz.com
您所在的城市或区域名称是什么?
  [Unknown]:  chengdu
您所在的省/市/自治区名称是什么?
  [Unknown]:  sichuan
该单位的双字母国家/地区代码是什么?
  [Unknown]:  cn
CN=dhope, OU=xz.com, O=xz.com, L=chengdu, ST=sichuan, C=cn是否正确?
  [否]:  y

输入 <dhope> 的密钥口令
        (如果和密钥库口令相同, 按回车):

2 开放tomcat的ssl

#原内容:
<--   
 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
   -->

#修改后:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
          keystoreFile="D:\Program Files\httpssl\dhope.keystore"
              keystorePass="admindhope"/>
# 其中keystroeFile是生成密钥的路径
# keystorePass是生成密钥时的密码

3 调整ShiroFilter

#新增
<bean id="sslFilter" class="org.apache.shiro.web.filter.authz.SslFilter">   
    <property name="port" value="8443"/>
</bean>
#默认的SslFilter端口为443
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  ……
    <property name="filters">
      <map>
      ……
        <entry key="ssl" value-ref="sslFilter"/>
        ……
      </map>
    </property>
  ……
</bean>

<bean name="shiroFilterChainDefinitions" class="java.lang.String">
    ……
      /login=ssl,authc
    ……
</bean>

这样就实现了基于Shiro的SSL认证

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 服务器https配置 配置https操作说明文档 1、查看服务器环境配置(tomcat和apache合并使用) 2...
    南京杨小兵阅读 8,919评论 0 9
  • 一. Keytool创建和导入命令 创建keystore和密钥对 为存在的keystore生成证书请求文件CSR ...
    sngths阅读 6,406评论 0 1
  • 1:什么是HTTPS? HTTPS其实是有两部分组成:HTTP+SSL/TLS, 也就是在HTTP上又加了一层处理...
    Bearoooo阅读 7,421评论 0 3
  • JSSE(JAVA安全套接字扩展,JAVA Secure Socket Extension)是SSL和TLS的纯J...
    Rhett_S阅读 663评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,904评论 18 139