tomcat之https配置(生成证书)

tomcat之https配置(生成证书)

升级https需要购买SSL证书之类的,但是在公司开发环境下没有自己的域名,所以只能在本地使用java的Keytool命令生成一个。

生成ssl证书

1. 管理员打开cmd窗口,输入

keytool -genkey -alias tomcat -keyalg RSA -keystore Z:\WorkSpace\Plugins\Tomcat\ssl\tomcat.keystore -validity 36500
keytool 是jdk中的工具,位置在D:\tools\jdk\bin中。若未配置环境变量,可在bin文件夹中启动cmd,运行该代码。

“Z:\WorkSpace\Plugins\Tomcat\ssl\tomcat.keystore” 含义是证书文件保存位置,证书文件名称是tomcat.keystore ;

“-validity 36500” 含义是证书有效期,36500表示100年,默认值是90天。

2. 输入密钥库口令

输入密钥库密码:此处需要输入大于6个字符的字符串,例如abc123

3. 输入两次通过后,弹出以下问题:

"您的名字与姓氏是什么?" 这是必填项,并且必须是TOMCAT部署主机的域名或者IP [如:baidu.com 或者 127.0.0.1],就是你将来要在浏览器中输入的访问地址;

其他得问题可填可不填,最后对照信息正确则输入y,不正确打算重来则输入n。

4. 输入密钥口令

密钥库口令,这里我理解的是tomcat的主密码,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以生成完成,可在指定目录下找到证书文件。

配置tomcat

1. 修改server.xml

a. 打开tomcat目录下conf/server.xml文件,修改如下

<Connector port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true"
    maxThreads="800"
    scheme="https"
    secure="true"
    clientAuth="false"
    sslProtocol="TLS"
    keystoreFile="D:/tools/tomcat-8.0/ssl/tomcat.keystore"
    keystorePass="123456"/>

在这里我是新增加了443的Connector,也可以取消8443的Connector,增加“keystoreFile”和“keystorePass”。

其中keystoreFile是证书存放的路径,keystorePass为生成证书时输入的密码。

b. 修改需要重定向的端口,我这里用的是8080。

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="200000"
               redirectPort="443"
               URIEncoding="utf-8"
                compression="on"              
                compressionMinSize="1024"
                maxPostSize="-1"
                disableUploadTimeout="false"
               />

例子:

 

 

2. 修改web.xml

a. 打开conf/web.xml

在最后增加以下代码:

<login-config>
        <!-- Authorization setting for SSL -->
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
        <!-- Authorization setting for SSL -->
        <web-resource-collection>
            <web-resource-name>SSL</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

至此tomcat配置完成,启动tomcat即可使用ssl,在浏览器输入localhost:8080

Tomcat配置完成后,使用Https访问,Chrome会提示安全警告,点击“高级”,继续访问即可,之后再https下使用ip地址访问是没有问题的。

 

注意:若端口443被占用页面会出现403报错,可改为8443测试

注意:tomcat无法配置代理,可在前端写死路径访问后端,但建议需要代理使用nginx

 

 

参考自:https://blog.csdn.net/qq_31832209/article/details/111309586     @强

钻研不易,转载请注明出处。。。。。。

 

posted @ 2021-01-08 15:04  莫小龙  阅读(3673)  评论(0编辑  收藏  举报