用openSSL创建证书,然后在tomcat上配置https使用

用openSSL创建证书

OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理下面给出如何用OpenSSL创建自己签名的证书,这个证书可以做为SSL服务器的证书。

Git在安装时,会自动安装 OpeenSSL软件包。通过执行 Git下面的 Bash 命令

avatar

在命令行窗口中输入 openssl命令可以进行 Openssl操作界面:

avatar

openssl 命令

创建私钥

下面命令会生成 2048位的 RSA密钥对,并且将它存放在 westwood.key文件中。——-用户的私钥,要保存好,一般要放在服务器上的某个位置

OpenSSL> genrsa -out westwood.key 2048
Generating RSA private key, 2048 bit long modulus
......+++
......+++

使用默认的RSA会把密钥输出到stdout

OpenSSL> genrsa
Generating RSA private key, 2048 bit long modulus
........................................................................+++
................................................................................
e is 65537 (0x10001)
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1kzNqLnwhw/LqorPKuqx9exUh5gjmlt6jx/NCBVq2POwcn8H
NlcMhwEb6jiyrtmKj/oKieCKI/brtGyQqrI4Qik2/po1j1re7CZop0yL7rNoD/Il
0xC11pVhr2kdX3kMELOkd07FrmXHcxdRs8hNBvbyLe141d4CWqDaxTLLj4n/Dvhb
49rfOPBWmGtp8cWnfbwR7ZfEgriL/6fKjaTKNpcWhmJDBbHswaz3TynU1A1gn4Qm
be59k9eM/tPL7x3WDkLA8zpfCVv0rlj663IKIWYg72D/vkP/IfuzaIgmfDsHTpCA
IJvd+oONyPYhzihZjvVWKFGhjpkxlYWrEJKjlQIDAQABAoIBAAxtzevARQQAVYah
oFxT2lhyCYEHwODd92C/rmuOmnDUyWIKngd3ywE1fkH6YdqkQVYSYXQXsstdMdR4
C3fq+DpWG5tupDaZRZ6ap600UlVY0GtEVw9Dw9gbN9wtk4eLBLkfQiWtSufPfV7e
dl2f+1+xCODDCiQVSTuqYqXXSVkcw4vWdsxmwwB3SQPacrymIuyM8NQljNhA4Top
9Dxzrt+ozplVXviWjwhhDKgoCl8g9allJ3rvCs8dAE8jFyO9s0szSmbRp/mqDQMu
Ksp8v9ZGmN35Qk45sa9SE/rN3Jmj04mZr3b6zRclGEE39gxLPsrINr52wSTWBBPQ
q07oz4ECgYEA/ol1OP0ktUTAhgueqXQp5AYP4/p9fgGy5JI/C8tUm7fW/x87fWA3
ME6rRiyXAknLzEb3vCZW3t6V91kFfpurgGoWWSof9b4BQZmSJOQTfyzGY0xfn4SJ
cRM24YniSRJaJvQVFoa6Ig1h8/kJxTiUkltpoApNq1At8cLAxBJPEbUCgYEA14gj
Y11pwtMZJwTa2xZvivs3tGAvbJIDVOt6OrltqMfqKw9UAt72FK7O+XSxxKeICtv2
TIE1kxz9MfWW69BCG+2uWgnkAXw/x/G+A9m8iuLy6MUkyJYiR/HS8XcSvmYCveiT
uMK+6LfYKWH+DpMzQj/NnL9r6RIXZ01dTwLV9mECgYEAtzWxjmeHOIJYISPT/ByE
2oASiAIQudX3MdaiUpb0O3FD6zZL156dmsPFPCl0OE1tx4d9YYwnExwbzYHiFpNu
CmxR0bQkdPliZhlnu+3+qpdL5MVgPq1jUGSIKCbbHcV75nXhh+lJqKEBVF54zeA/
8GijynIgHaMErvODVJ3pE9ECgYBiBRL7BKetp+2fdjDGRKzTyy5pRPksajdDrpf3
Dw+VG94eWSk+6QGHJH0SrASQyBQxxBl+b6Da1+s6hlNtyVfXdb++SRM9rbEgEIv3
GlYJ3+7S952j78uFZrAlip6moqQKlDRiaYcDNWEEaQFuxXkhXvz2lYPRCp5EJ8YQ
wdxm4QKBgQCKo5GnqIhzijmlGRNJx5uBQf6od+juELGf8ecMI74CewHUxw4D4Ce3
cIfRcuTgQLJdLo8JmWyXqW5pdVeqvYlQMfweSx9aoINB4LzEUo7NLA/s6Q2qaSZR
GN/rzERw39wDrIObkC+/QbgUo1rys3MBW9KH1v9VDPuR5pQLLgJReg==

其他可用的命令可以查看帮助文档这里就不一一列出

创建证书请求

下面命令使用 westwood.key 密钥文件(刚刚创建的)生成一个新的证书请求文件 westwood.key。在创建过程中需要输入一些其它参数,这些参数在下面给出

OpenSSL> req -new -out westwood.csr -key westwood.key
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:guangdong
Locality Name (eg, city) []:guangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:www.gdut.edu.cn
Organizational Unit Name (eg, section) []:westwood
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:MentalOmega

这时文件目录下会产生一个csr文件———证书请求文件

生成自签名证书

下面命令用证书请求文件westwood.csr,通过westwood.key签名后生成有效其10年的证书westwood.crt

OpenSSL> x509 -req -in westwood.csr -out westwood.crt -signkey westwood.key -days 3650
Signature ok
subject=/C=cn/ST=guangdong/L=guangzhou/O=www.gdut.edu.cn/OU=westwood/CN=localhost/[email protected]
Getting Private key

生成结果

westwood.key ——-用户的私钥,要保存好,一般要放在服务器上的某个位置
westwood.csr ———证书请求文件,
westwood.crt ———生成的X509证书,供客户端下载使用

Tomcat启用HTTPS协议配置过程

概念简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。

HTTP 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

HTTPS和HTTP的区别

一、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。

二、HTTPS 协议需要到 CA 申请证书,一般免费证书很少,需要交费。

三、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。

四、HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

证书的使用

使用OpenSSL生成的数字证书和私钥,如需要在Java或Tomcat环境下使用,需要先装其转换成PKCS#12编码格式的密钥库,才能使用keytool工具进行相应的管理。生成证书以后,就可以将其放到tomcat7/conf的目录下(建议),如果要把这个证书配置到Tomcat下,就不能像keytool生成的证书那样进行配置,而是要如下在tomcat的conf目录下对server.xml目录进行如下配置

<Connector port="8443" maxHttpHeaderSize="8192"    
 maxThreads="150"  
 enableLookups="false" disableUploadTimeout="true"  
 acceptCount="100" scheme="https" secure="true"  
 SSLEnabled="true"  
 SSLCertificateFile="${catalina.base}\conf\westwood\westwood.crt"  
 SSLCertificateKeyFile="${catalina.base}\conf\westwood\westwood.key"
 SSLPassword="123456"/>  

然后启动服务器能在输出信息观察到8443端口已经被打开
avatar

然后在浏览器中输入

https://localhost:8443

会发现网址能被访问到,但是提示证书错误
avatar
这是因为这个证书还没有在CA认证过,所以被浏览器认为不安全,点击继续访问
avatar
最终能够看到,https已经在tomcat上配置好了。

参考的一些博客
http://daoyongyu.iteye.com/blog/2023133
http://szlxh002.iteye.com/blog/2277307

发布了75 篇原创文章 · 获赞 14 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq965194745/article/details/78781703