引用说明:原文来自 http://zhouyongqiang.iteye.com/blog/1629590,为方便本人阅读,格式略有调整。
第一步:为服务器生成证书
keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.keystore
第二步:为客户端生成证书
keytool -genkey -v -alias MyKey -keyalg RSA -storetype PKCS12 -keystore client.p12
第三步:将第二步生成的client.p12文件导出为一个cer文件
keytool -export -alias Mykey -keystore client.p12 -storetype PKCS12 -storepass 123456 -rfc -file client.cer
第四步:将生成的客户端证书导入到服务器端证书中,让服务器信任客户端证书
keytool -import -v -file client.cer -keystore tomcat.keystore -storepass 123456
第五步:查看客户端和服务器端的证书有没有成功的导入(查看证书信息)
keytool -list -keystore tomcat.keystore -storepass 123456
第六步:配置tomcat的server.xml文件,找到像以下内容的信息,把默认的注释去掉,在后面增加以下内容
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
sslProtocol="TLS" clientAuth="true" --这里clientAuth="true"是双向验证,默认是false单向验证
keystoreFile="D:\temp\SSL\tomcat.keystore" keystoreass="123456" --这两行是增加的内容
truststoreFile="D:\temp\SSL\tomcat.keystore" truststorePass="123456"
/>
第七步:将证书client.p12导入到浏览器中,双击证书进行导入操作,根据个人具体需要,我本人将证书放在了个人存储下面,也可以放到受信任的根证书颁发机构下面或是其它的存储下面都可以,然后重启tomcat,在浏览器中输入https://localhost:8443,因为client.p12证书放到了个人存储下面,所以会有一个警告消息,其它的我没有试过,然后跳过警告继续访问页面会出现tomcat的欢迎页面,就像访问http://localhost:8080一样的页面显示在你面前,那就说明SSL和数字证书配置成功!
总结:
其实一开始我的配置就成功了,只是因为浏览器的原因,有时候访问成功了但是因为有警告,IE浏览器马上就跳转到别的页面,我的是跳转到搜狗搜索的页面,时间很短,就好像没有访问成功一样,让人误以为https://localhost:8443访问失败,就这个问题花了我很长的时间,后来无意间点击浏览器的后退按钮,居然看到了警告信息,这个警告信息正是我要找的东西,就是这么一步吧,折腾了很长时间。另外,如果把生成的服务器端的证书tomcat.keystore文件也导出为一个tomcat.cer安全证书文件并把这个证书文件安装到浏览器的受信任的根证书颁发机构下面的话,那么在访问https://localhost:8443时就会直接看到一把小锁而不会有警告消息也不会选择证书了。
分享到:
相关推荐
- **客户端**:采用数字证书助手的COM应用控件,如V2签名控件或V3 P11控件,部署在用户计算机上,支持Windows系列平台。 - **服务器端**: - SVS验证服务:负责验证签名和证书的有效性,通常运行在独立的Windows...
数字证书是一种在网络中验证身份的重要机制,它通过将用户的身份信息与对应的公钥结合,经过特定的编码规则,并由一个可信的第三方机构(通常称为证书颁发机构,CA)进行数字签名来生成。国际上,数字证书遵循RFC...
这个“openssl-windows64”压缩包显然是为64位Windows操作系统设计的OpenSSL版本,主要用途是进行数据加密、解密以及数字证书管理等与网络安全密切相关的操作。 OpenSSL 包含了两个主要组件:OpenSSL 库和命令行...
OpenSSL 提供命令行工具(如`openssl.exe`)来处理X.509数字证书,包括生成、签署、检查和转换证书。这对于建立和维护服务器或客户端的身份验证非常重要。 9. **应用示例** 常见的使用OpenSSL的场景包括: - ...
江苏省电子政务证书认证系统应用培训材料主要涵盖了数字证书的基础知识、南京CA分中心系统的设计、以及相关的技术标准和开发接口。以下是对这些内容的详细解释: 1. **数字证书基础**: - **PKI(公开密钥基础设施...
4. **.CER**:在Windows环境中,CER文件主要用于存储数字证书,而CER文件可以转换为CRT文件,反之亦然。这两种格式都是DER格式的别名。 5. **.KEY**:存储私钥的文件。私钥是用于解密和签名的密钥,通常是保密的,...
这种签名机制可在多个Windows操作系统版本中进行验证,包括Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP 和 Windows 2000。 #### 三、PKCS#7 格式 SignedData 的验证码轮廓 在PE文件中,...
1. **安装OpenSSL**:OpenSSL是实现EAP-TLS认证的关键组件,用于生成数字证书和密钥。 ```bash sudo apt-get install openssl ``` 2. **安装Freeradius**:Freeradius是一款广泛使用的开源RADIUS服务器,用于...
6. 签发证书:通常,CSR会提交给证书颁发机构(CA)进行签名,但在此案例中,我们可以模拟CA,使用BouncyCastle的`X509V3CertificateGenerator`生成自签名的证书。这需要提供CSR、发行者信息(通常是CA的公钥)、...
- **证书管理**:生成、解析、验证X.509数字证书,用于身份验证和数据完整性。 - **密钥生成**:支持创建各种类型的密钥对,如RSA、DSA、ECDSA等。 2. **OpenSSL-Win64 特点**: - **操作系统兼容性**:专为64位...
总之,**Win64OpenSSL**是一个轻量级但功能强大的工具集,适用于Windows 7 64位系统的用户,尤其对于那些需要在本地环境中进行加密操作和证书管理的个人或组织,它是不可或缺的工具。通过下载并安装提供的**Win64...
2. 配置:运行 `./config` (在 Unix-like 系统上)或 `configure` (在 Windows 上)命令,指定目标平台和编译选项,例如开启/关闭某些特性、选择静态/动态链接等。 3. 编译:执行 `make` 命令开始编译过程。 4. ...
标题"openssl for win"指的是在Windows环境下使用OpenSSL,而描述中的"open ssl win dows 64"则强调了这是针对64位Windows系统的版本。在给定的文件名"Win64OpenSSL-1_1_0f.exe"中,我们可以看到这是一个针对Windows...
1. **密钥和证书管理**:OpenSSL可以生成RSA、DSA、EC等类型的公钥和私钥对,以及X.509数字证书,这对于服务器身份验证和客户端认证至关重要。 2. **加密和解密**:OpenSSL提供各种加密算法,如AES、DES、Blowfish...
3. 数字签名和证书管理:提供了生成和验证数字证书、私钥和公钥的功能,用于身份验证。 4. 哈希函数:如MD5、SHA1、SHA256等,用于数据完整性校验。 MinGW (Minimalist GNU for Windows) 是一个开源项目,它为...
- **数字证书管理**:生成、签发和验证 X.509 数字证书。 - **加密和解密**:对文件、数据流进行加解密操作。 - **安全通信协议**:支持 SSLv2/v3、TLSv1.0 至 TLSv1.3 等版本的协议。 3. **预编译库的使用**: ...
在Android系统中,每个安装的APK文件都必须经过数字签名,验证开发者身份并确认应用程序未经篡改。以下是关于SignApk签名工具及其使用流程的详细解释: 1. **签名的目的**: - **验证身份**:开发者通过签名证明...
3. **证书处理:** OpenSSL 支持证书的生成、签名、验证和管理,包括 X.509 格式的数字证书。 4. **密钥管理:** 可以生成、导出和导入公钥和私钥,以及进行密钥的加密和解密操作。 5. **命令行工具:** 提供了一...
在Windows系统中,OpenSSL通常以动态链接库(DLL)的形式存在,供应用程序调用其功能。`openssl-1.1.1`是OpenSSL的一个版本号,它代表了该库在2018年发布的一个稳定版本,提供了对SSLv2/v3、TLS 1.0至1.3以及DTLS ...
2. **证书管理**:生成或获取服务器和客户端的数字证书,用于身份验证和加密。 3. **网络通信**:使用QSslSocket建立安全连接,处理握手过程,进行数据加密传输。 4. **错误处理**:编写异常处理代码,应对可能出现...