- cmd进入到jdk下的bin目录
- 运行以下面命令:
在E:\Tomcat目录下生成证书:tomcat.keystore ,证书的有效期是100年(36500).keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\Tomcat\tomcat.keystore -validity 36500
- 执行命令后,根据提示输入:
输入密钥库口令: //这里输入:123456,(此处需要输入大于6个字符的字符串,网上看到的,没有实验过) 再次输入新口令: //这里输入:123456 您的名字与姓氏是什么? [Unknown]: 192.1638.0.164 //这里必须输入,这里输入的是ip地址 您的组织单位名称是什么? [Unknown]: tomcat //随便写的 您的组织名称是什么? [Unknown]: tomcat //随便写的 您所在的城市或区域名称是什么? [Unknown]: bj //随便写的 您所在的省/市/自治区名称是什么? [Unknown]: bj //随便写的 该单位的双字母国家/地区代码是什么? [Unknown]: china //随便写的 CN=192.1638.0.164, OU=tomcat, O=tomcat, L=bj, ST=bj, C=china是否正确? [否]: y //确定 输入y 正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 36,500 天): CN=192.1638.0.164, OU=tomcat, O=tomcat, L=bj, ST=bj, C=china 输入 <tomcat> 的密钥口令 (如果和密钥库口令相同, 按回车): //直接回车 [正在存储E:\Tomcat\tomcat.keystore] Warning: JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore E:\Tomcat\tomcat.keystore -destkeystore E:\Tomcat\tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
在Tomcat的安装目录下找到找到conf目录下的sever.xml并进行编辑,找到下面的内容(默认是被注释掉的)
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector>
将上面的内容修改成如下的形式:其中keystorePass为第三步设置的密码,keystoreFile为第三步生成的文件的路径
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="E:/Tomcat/tomcat.keystore" keystorePass="123456" sslProtocol="TLS" />
重启Tomcat,对于同一个工程,既可以使用http的方式访问http://192.168.0.164:8080/api/person/1, 也可以使用https的方 法访问:https://192.168.0.164:8443/api/person/1。