tomcat 配置 SSL 协议(支持https)

tomcat 配置 SSL 协议(支持https)

今天接到一个客户的需求要求公司项目使用https,之前也没搞过,于是在网上看了下资料,发现也没有太复杂,不过还是记录下!

配置环境

  • windos系统
  • tomcat6.0
  • java jdk 1.6.2

步骤

  1. 生成证书
    打开cmd命令窗口,切换至jdk的bin目录下,输入一下命令
    keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "d:\klsstt.keystore"
    该命令后面的目录为证书目录。
    输入该命令后,控制台会输出一下信息
    输入keystore密码:
    再次输入新密码:
    您的名字与姓氏是什么?
    [Unknown]: klsstt
    您的组织单位名称是什么?
    [Unknown]: klsstt
    您的组织名称是什么?
    [Unknown]: klsstt
    您所在的城市或区域名称是什么?
    [Unknown]: sz
    您所在的州或省份名称是什么?
    [Unknown]: gd
    该单位的两字母国家代码是什么
    [Unknown]: zh
    N=kbl, OU=yjw, O=yjw, L=sz, ST=gd, C=zh 正确吗?
    [否]: y
    最后输入y确认后,打开路径可以看到生成的文件klsstt.keystore。
    注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,会出问题。
  2. 配置tomcat
    在网上新下载的tomcat,打开server.xml文件,第83行开始88行结束这段被注释的配置放开
    配置内容如下:

    将其修改后如下:

    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="D:/klsstt.keystore"
    keystorePass="111111"
    />

    以上配置中,keystoreFile和keystorePass是我们证书的路径和密码,protocol默认是HTTP/1.1,由于启动时报错(java.lang.Exception: No Certificate file specified or invalid file format)所以我这边修改了该属性。
    SSL协议配置属性参考:
    clientAuth
    如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
    keystoreFile
    指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于(Tomcat安装目录)环境变量 的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。
    keystorePass
    指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。
    sslProtocol
    指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。
    ciphers
    指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。
    完成以上操作,就可以以https访问你的工程项目了。

你可能感兴趣的:(tomcat 配置 SSL 协议(支持https))