Tomcat既可以作为独立的Servlet容器,也可以作为其他HTTP服务器附加的Servlet容器。如果Tomcat在非独立模式下工作,通常不必配置SSL,由它从属的HTTP服务器来实现和客户的SSL通信。Tomcat和HTTP服务器之间的通信无须采用加密机制,HTTP服务器将解密后的数据传给Tomcat,并把Tomcat发来的数据加密后传给客户。
如果Tomcat作为独立的Java Web服务器,则可以根据安全需要,为Tomcat配置SSL,它包含以下两个步骤:
(1) 准备安全证书。
(2) 配置Tomcat的SSL连接器(Connector)。
一、使用openssl生成证书文件
1.OpenSSL安装及准备工作
(1)下载最新的OpenSSL安装包,并解压
tar -xf openssl.XX.tar.gz
编译安装
./config
make
make install
默认安装在/usr/local/ssl目录下
(2)准备相关目录
cd /usr/local/ssl
mkdir certs
mkdir newcerts
mkdir crl
touch index.txt
echo 01>serial
(3)生成随机数
openssl rand -out private/.rand 1000
2.生成根证书
(1)生成私钥
openssl genrsa -aes256 -out private/cakey.pem 1024
(2)生成根证书签发申请
openssl req -new -key private/cakey.pem -out private/ca.csr
(3)根证书签发
openssl x509 -req -days 365 -sha1 -extensions v3_ca -signkey private/cakey.pem -in private/ca.csr -out certs/ca.cer
3.签发服务端证书
(1)生成私钥
openssl genrsa -aes256 -out private/server-key.pem 1024
(2)生成服务端签发申请
openssl req -new -key private/server-key.pem -out private/server.csr
注意:服务端证书中的Common Name(cn)是你要发布网站的域名,如www.smed.cn
(3)服务端证书签发
openssl x509 -req -days 365 -sha1 -extensions v3_req -CA certs/ca.cer -CAkey private/cakey.pem -CAserial ca.srl -CAcreateserial -in private/server.csr -out certs/server.cer
4.签发客户端证书
(1)生成私钥
openssl genrsa -aes256 -out private/client-key.pem 1024
(2)生成客户端签发申请
openssl req -new -key private/client-key.pem -out private/client.csr
(3)客户端证书签发
openssl x509 -req -days 365 -sha1 -CA certs/ca.cer -CAkey private/cakey.pem -CAserial ca.srl -in private/client.csr -out certs/client.cer
注意:客户端证书中的Common Name(cn)是你要发布网站的域名(和服务端一致),如www.smed.cn(后面的双向认证要使用)
5.证书的使用
使用OpenSSL生成的数字证书和私钥,如需要在Java或Tomcat环境下使用,需要先装其转换成PKCS#12编码格式的密钥库,才能使用keytool工具进行相应的管理。转换命令如下:
openssl pkcs12 -export -clcerts -name lxh -inkey private/client-key.pem -in certs/client.cer -out client.p12
openssl pkcs12 -export -clcerts -name lxh -inkey private/server-key.pem -in certs/server.cer -out server.p12
信任证书的生成:
keytool -importcert -trustcacerts -alias www.smed.net -file certs/ca.cer -keystore ca-trust.p12
keytool工具查看:
keytool -list -keystore client.p12 -storetype pkcs12 -v
二、Tomcat 单向认证的配置
打开tomcat的配置文件
vim conf/server.xml
增加或修改如下内容:
<Connector port="8443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/usr/local/ssl/server.p12" keystoreType="pkcs12" keystorePass="12345678" />
由于上面server证书的Common Name(cn)设置为www.smed.net
所以必须在/etc/hosts文件增加此域名的映谢:
vim /etc/hosts
增加如下内容:
127.0.0.1 www.smed.net
打开网站:
在Firefox浏阅器打开:https://www.smed.net:8443,这时会出现不信任的连接,
必须在浏阅器加载根证书:
导入上面生成的CA根证书ca.cer。
这时再打开https://www.smed.net:8443,就显示此网站是安全的。
三、tomcat双向认证的配置
打开tomcat的配置文件
vim conf/server.xml
增加或修改如下内容:
<Connector port="8443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="/usr/local/ssl/server.p12" keystoreType="pkcs12" keystorePass="12345678" truststoreFile="/usr/local/ssl/ca-trust.p12" truststoreType="jks" truststorePass="12345678" />
打开网站:
在Firefox浏阅器打开:https://www.smed.net:8443,这时会出现不信任的连接,如下图:
必须要Firefox浏阅器在加载客户端证书:
选择上面生成的client.p12
可以查看证书的内容:
再一次打开https://www.smed.net:8443,会出现如下窗口,按“确定”即可
相关推荐
自己学习openSSL的一些总结,很初步,希望能够帮助到跟我一样刚刚开始接触openSSL的朋友,很浅显,我也是初学者,希望大家不要见笑。
ssl tomcat opensslssl tomcat openssl
使用openssl与jdk的keytool生成根证书,server端证书,浏览器端证书,并配置使工程跑在https上。(带dos脚本)
一:生成CA证书 二.生成server证书。 三.生成client证书。 四.根据ca证书生成jks文件 五.配置tomcat ssl 六.导入证书 七.验证ssl配置是否正确
包括了openssl_win64版安装包,ActivePerl安装包,windows安装配置openssl教程,使用openssl配置tomcat ssl双向认证教程(仅安装就不需要最后一个教程)
一:生成CA证书 二.生成server证书。 三.生成client证书。 四.根据ca证书生成jks文件 五.配置tomcat ssl 六.导入证书 七.验证ssl配置是否正确
本资源包含一个 openssl 工具安装包 Win32OpenSSL-1_1_0c.exe,一个 tomcat 进行配置 ssl 证书、完全 TLS v1.2、完全正向加密的 server.xml、startup.bat 配置文件。关于tomcat 进行配置 ssl 证书、完全 TLS v1.2、...
本问讲述了自己使用OpenSSL keytool等工具自己生成CA证书的详细步骤及使用这些证书的Tomcat服务端设置及客户端IE导入。
tomcat7单双向SSL配置,本人亲测,并附有截图代码
因为证书颁发机构会给两个整数,一个是签署后的服务器证书,还有一个中级CA证书,所以要多一行配置。 可能证书颁发机构只会给你服务器证书也就是server.cer, 中级的CA证书即 intermediate.cer 需要到 证书颁发机构...
1、介绍加密算法,阐述什么是数字摘要、数字签名、数字证书 2、用OPENSSL签发客户端、服务器端数字证书 3、HTTPS + tomcat7实例
iOS7.1之后苹果从安全性考虑添加了https的限制,https协议要求服务器支持https请求并且配置有效的SSL证书 ,SSL证书可以从权威机构购买也可以自己openSSL制作,本文档主要说明用tomcat配置https自签名证书 ...
该资源为《Tomcat6.X SSL的配置》一文涉及到的证书及配置文件。 文章请参见:http://blog.163.com/haizai219@126/blog/static/44412555201052332951865/
使用yum安装gcc yum -y install gcc yum -y install gcc-c++ yum install make 然后正式安装升级openssl最新文件 wget http://www.openssl.org/source/openssl-1.1.0e.tar.gz tar zxvf openssl-1.1.0e.t
该软件用于配置Windows Server系统中Tomcat的SSL证书操作,版本为Win64OpenSSL-1_1_0h,安装过程中一直下一步即可
分析最新的攻击,如BEAST、CRIME、BREACH、Lucky 13、RC4、三次握手和心脏出血 提供全面的部署建议,包括严格传输...给出使用Apache httpd、IIS、Java、Nginx、Microsoft Windows和Tomcat进行安全服务器配置的实际建议
2. linux平台:openssl及Tomcat、Apache及Nginx 2. 导入证书完成ssl配置,并通过https访问配置好的以自己名字命名的站点来验
OpenSSL
在DockerOS6.8的镜像里,离线安装Nginx及配置...7、创建证书并修改Nginx配置后从新载入配置文件; 8、验证https服务和http自动跳转。 镜像下载地址: https://hub.docker.com/repository/docker/estc/centos4https
This one has enabled (experimental) support for verification of client SSL certificates via OCSP protocol (45392). Each archive contains tcnative-1.dll for 32-bit and 64-bit (x64) CPU architectures....