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

来源:互联网 发布:centos安装php两个环境 编辑:程序博客网 时间:2024/06/09 15:50

用openSSL创建证书

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

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

avatar

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

avatar

openssl 命令

创建私钥

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

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

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

OpenSSL> genrsaGenerating RSA private key, 2048 bit long modulus........................................................................+++................................................................................e is 65537 (0x10001)-----BEGIN RSA PRIVATE KEY-----MIIEpAIBAAKCAQEA1kzNqLnwhw/LqorPKuqx9exUh5gjmlt6jx/NCBVq2POwcn8HNlcMhwEb6jiyrtmKj/oKieCKI/brtGyQqrI4Qik2/po1j1re7CZop0yL7rNoD/Il0xC11pVhr2kdX3kMELOkd07FrmXHcxdRs8hNBvbyLe141d4CWqDaxTLLj4n/Dvhb49rfOPBWmGtp8cWnfbwR7ZfEgriL/6fKjaTKNpcWhmJDBbHswaz3TynU1A1gn4Qmbe59k9eM/tPL7x3WDkLA8zpfCVv0rlj663IKIWYg72D/vkP/IfuzaIgmfDsHTpCAIJvd+oONyPYhzihZjvVWKFGhjpkxlYWrEJKjlQIDAQABAoIBAAxtzevARQQAVYahoFxT2lhyCYEHwODd92C/rmuOmnDUyWIKngd3ywE1fkH6YdqkQVYSYXQXsstdMdR4C3fq+DpWG5tupDaZRZ6ap600UlVY0GtEVw9Dw9gbN9wtk4eLBLkfQiWtSufPfV7edl2f+1+xCODDCiQVSTuqYqXXSVkcw4vWdsxmwwB3SQPacrymIuyM8NQljNhA4Top9Dxzrt+ozplVXviWjwhhDKgoCl8g9allJ3rvCs8dAE8jFyO9s0szSmbRp/mqDQMuKsp8v9ZGmN35Qk45sa9SE/rN3Jmj04mZr3b6zRclGEE39gxLPsrINr52wSTWBBPQq07oz4ECgYEA/ol1OP0ktUTAhgueqXQp5AYP4/p9fgGy5JI/C8tUm7fW/x87fWA3ME6rRiyXAknLzEb3vCZW3t6V91kFfpurgGoWWSof9b4BQZmSJOQTfyzGY0xfn4SJcRM24YniSRJaJvQVFoa6Ig1h8/kJxTiUkltpoApNq1At8cLAxBJPEbUCgYEA14gjY11pwtMZJwTa2xZvivs3tGAvbJIDVOt6OrltqMfqKw9UAt72FK7O+XSxxKeICtv2TIE1kxz9MfWW69BCG+2uWgnkAXw/x/G+A9m8iuLy6MUkyJYiR/HS8XcSvmYCveiTuMK+6LfYKWH+DpMzQj/NnL9r6RIXZ01dTwLV9mECgYEAtzWxjmeHOIJYISPT/ByE2oASiAIQudX3MdaiUpb0O3FD6zZL156dmsPFPCl0OE1tx4d9YYwnExwbzYHiFpNuCmxR0bQkdPliZhlnu+3+qpdL5MVgPq1jUGSIKCbbHcV75nXhh+lJqKEBVF54zeA/8GijynIgHaMErvODVJ3pE9ECgYBiBRL7BKetp+2fdjDGRKzTyy5pRPksajdDrpf3Dw+VG94eWSk+6QGHJH0SrASQyBQxxBl+b6Da1+s6hlNtyVfXdb++SRM9rbEgEIv3GlYJ3+7S952j78uFZrAlip6moqQKlDRiaYcDNWEEaQFuxXkhXvz2lYPRCp5EJ8YQwdxm4QKBgQCKo5GnqIhzijmlGRNJx5uBQf6od+juELGf8ecMI74CewHUxw4D4Ce3cIfRcuTgQLJdLo8JmWyXqW5pdVeqvYlQMfweSx9aoINB4LzEUo7NLA/s6Q2qaSZRGN/rzERw39wDrIObkC+/QbgUo1rys3MBW9KH1v9VDPuR5pQLLgJReg==

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

创建证书请求

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

OpenSSL> req -new -out westwood.csr -key westwood.keyYou are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:cnState or Province Name (full name) [Some-State]:guangdongLocality Name (eg, city) []:guangzhouOrganization Name (eg, company) [Internet Widgits Pty Ltd]:www.gdut.edu.cnOrganizational Unit Name (eg, section) []:westwoodCommon Name (e.g. server FQDN or YOUR name) []:localhostEmail Address []:965194745@qq.comPlease enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:123456An 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 3650Signature oksubject=/C=cn/ST=guangdong/L=guangzhou/O=www.gdut.edu.cn/OU=westwood/CN=localhost/emailAddress=965194745@qq.comGetting 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

阅读全文
0 0
原创粉丝点击