一、基于Tomcat、JDK内置密钥工具:
1、生成服务端证书库(keystore证书库文件),用于客户端验证服务端的真实性
keytool -genkey -v -alias key_server -keyalg RSA -keystore e:\server.keystore -dname "CN=D-F005227,OU=youku,O=zhibohudong,L=beijing,ST=beijing,C=cn" -storepass Aa123 -keypass Aa123 -validity 36000
颁发者信息:
CN : 一般指本站点域名或站长姓名(common name)
OU : 组织单位名称(organization unit)
O : 组织名称(organization)
L : 城市或区域(location)
ST : 州或省份(state)
C : 两字母国家代码(country)
2、生成客户端证书(PKCS12文件),用于双向认证中服务端验证客户端请求来源是否合法用户
keytool -genkey -v -alias key_client -keyalg RSA -storetype PKCS12 -keystore e:\client.p12 -dname "CN=D-F005227,OU=youku,O=zhibohudong,L=beijing,ST=beijing,C=cn" -storepass Bb123 -keypass Bb123 -validity 36000
3、让服务端信任客户端证书,将客户端证书导出为CER文件
keytool -export -alias key_client -keystore e:\client.p12 -storetype PKCS12 -storepass Bb123 -rfc -file e:\client.cer
4、将step 3中导出的客户端证书(CER文件)导入到step 1中的服务端证书库中,以完成信任绑定
keytool -import -v -file e:\client.cer -keystore e:\server.keystore -storepass Aa123
5、Tomcat服务器配置,支持https安全连接(SSL双向验证,clientAuth=true|false|want)
打开TOMCAT_HOME\conf\server.xml,在<Service name="Catalina">下新增:
<Connector port="4433" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" clientAuth="true"
sslProtocol="TLS" keystoreFile="e:/server.keystore" keystorePass="Aa123"
truststoreFile="e:/server.keystore" truststorePass="Aa123"/>
6、让客户端导入证书,以便完成双向认证,正常访问
call e:/client.p12
7、导出服务端证书,安装在客户端(证书存储位置:授信任的根证书颁发机构),以便建立信任连接,保证客户端不会提示不信任的站点(如果服务端证书是经权威证书机构颁发,则无须执行该步骤)
keytool -export -alias key_server -keystore e:\server.keystore -storepass Aa123 -rfc -file e:\server.cer
call e:/server.cer
8、启动服务器,访问验证
输入地址:https://ip:4433,可爱的汤姆小猫出现了,且地址栏前面出现一把绿色的锁,OK,打完收工!
附:在开启双向SSL认证(clientAuth=true)时,使用Firefox浏览器访问会提示
这时需要手动按以下步骤导入客户端证书:
菜单 --> 工具 --> 选项 --> 高级 --> 证书 --> 查看证书 --> 您的证书 --> 导入 --> 选择client.p12 --> 输入客户端证书密钥 --> 提示导入成功 --> 确定 --> 刷新页面 --> over
二、基于Nginx、Linux下OpenSSL密钥工具
1、进入密钥、证书文件存放路径(自定义)
cd /etc/nginx/conf
2、生成2048位长的密钥,并用des3加密
openssl genrsa -des3 -nodes -out server.key 2048
-nodes 就是不需要密码,如果加密码则在nginx配置测试证书时会有问题
3、用step 2中生成的密钥来生成服务端证书请求文件
openssl req -new -key server.key -out server.csr
如果step 2中采用des3加密了,需要输入step 2设置的密码
颁发者信息:
Country Name:两字母国家代码
State or Province Name:州或省份
Locality Name:城市或区域
Organization Name:组织名称
Organizational Unit Name:组织单位名称
Email Address:邮件地址
A challenge password:为证书设置密码
An optional company name:公司名称(可不填写)
4、使用step 2中生成的密钥和step 3中生成的证书请求文件来生成服务端数字证书文件
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
5、Nginx配置
在http范围内增加如下配置
server {
listen 80;
server_name localhost d-f005227;
ssl on;
ssl_certificate server.crt;
ssl_certificate_key server.key;
ssl_verify_client on; # 开启客户端认证
ssl_client_certificate client.crt; # 客户端认证数字证书(生成方式省略)
location / {
proxy_pass http://localhost:8080 ;
}
}
分享到:
相关推荐
真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session共享同步问题等等,直接把 Web 应用的 war 包,放进Tomcat的 webapps ...
当图片传到tomcat1中到tomcat2中查找图片,我们可以将tomcat1和tomcat映射到另一台服务器上,然后做共享。或者在负载均衡中进行处理。 方案1:在负载均衡服务器上做一个session 映射,如果有记录则分发到原服务器...
6. 绝对没有代码生成和对XML没有要求配置 Spring boot的优点 spring boot 可以支持你快速的开发出 restful 风格的微服务架构 自动化确实方便,做微服务再合适不过了,单一jar包部署和管理都非常方便。只要系统...
运行环境:jdk8 + nginx1.20 + tomcat9 + IntelliJ IDEA + maven + 宝塔面板 系统管理分为以下功能,分别是用户管理,角色管理,部门管理,菜单管理,用户角色分配, 角色菜单分配,数据字典,流水号规则,定时...
但是,这就没有发掘C++Builder的作用,不如直接搭建NginX,Apache,lighttpd+tomcat。通过实践,在Web服务器上直接利用C++Builder,可以支持动态网页。而且,还可以执行 .jsp,.php,.do等任意类型的动态网页。 Bug记录...
5.11.zip,fastdfs-nginx-module-master.zip,nginx-1.12.2.tar.gz,tengine-2.2.1.tar.gz,libfastcommon-master.zip,lyyzoo-fastdfs-java-master.zip,FastDFS_v5.05.tar.gz等,在项目中用maven生成了fastdfs-...
本系统是基于RBAC授权和基于用户授权的细粒度权限控制通用平台,并提供单点登录、会话管理和日志管理。接入的系统可自由定义组织、角色、权限、资源等。用户权限=所拥有角色权限合集+用户加权限-用户减权限,优先级...
shoppingmall 是使用ssm框架开发的一个仿照的是天猫的购物商城项目的服务端。 项目用到的工具如netapp(做内网穿透)、nginx(做静态资源代理)、...一、 mybatis-generator 是一个mybatis代码生成插件,该插件根据数据库的
通过Nginx实现反向代理服务器集群,同时搭建squid集群以作为静态页面和图片的缓存。 3)通过web服务器的配置来实现负载均衡 即通过apache或是Nginx 将客户请求均衡的分给tomcat1,tomcat2....去处理。 2.1.2WEB应用...
│ 06-搭建Redis的集群环境.avi │ 08-插槽的分配和key的关系.avi │ 09-新增节点.avi │ 10-移除集群中的节点.avi │ 11-集群的故障转移.avi │ 12-MySQL的查询优化.avi │ 13-数据库结构优化.avi │ 14-插入数据的...
│ 第09节:搭建基础的开发环境.avi │ 第10节:Spring+Mybatis实现DAO.avi │ 第11节:Mybatis的分页实现.avi │ 第12节:Service的实现以及模块化.avi │ 第13节:Spring MVC实现Web层开发.avi │ 第14节:新增和...
将tomcat做很多个备份(10个),为了nginx转发;前台:访问比较大,管理员访问量比较小; 问题: 每次升级,10个tomcat都升级一次 后台的升级频繁要比前台频繁;升级10次,9次改的是后台的代码,只有一次是前台的代码 ...
3) 通过web服务器的配置来实现负载均衡 即通过apache或是Nginx 将客户请求均衡的分给tomcat1,tomcat2....去处理。 2.1.2 WEB应用开发架构思路 1) 应用开发实现MVC架构三层架构进行web应用开发 2) 页面尽可能静态化...