Apusic SSL配置V22.docx

上传人:b****4 文档编号:4877391 上传时间:2022-12-11 格式:DOCX 页数:35 大小:731.15KB
下载 相关 举报
Apusic SSL配置V22.docx_第1页
第1页 / 共35页
Apusic SSL配置V22.docx_第2页
第2页 / 共35页
Apusic SSL配置V22.docx_第3页
第3页 / 共35页
Apusic SSL配置V22.docx_第4页
第4页 / 共35页
Apusic SSL配置V22.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

Apusic SSL配置V22.docx

《Apusic SSL配置V22.docx》由会员分享,可在线阅读,更多相关《Apusic SSL配置V22.docx(35页珍藏版)》请在冰豆网上搜索。

Apusic SSL配置V22.docx

ApusicSSL配置V22

 

ApusicSSL配置

--OpenSSL在Apusic上的配置过程

 

关键字:

SSLApusicOpensslkeytool

Apusic应用服务器完全支持SSL协议最新版SSL3.0和TLS1.0协议。

本文将详细讲述如何在Apusic应用服务器上配置使用SSL双向认证。

1Apusic应用服务器及SSL/TSL简介

Apusic应用服务器是完全遵循JavaEE规范的Java企业级应用服务器,是经受大量客户应用验证的应用支撑平台。

J2EE是一个开放的描述多层企业级应用开发的技术规范,由国际上权威的Java标准化组织JCP倡导制定,JCP由众多国际知名厂商参与其中,最大程度保证了其一贯倡导的开放性。

Apusic应用服务器是国内第一个自有知识产权并严格遵循和实现J2EE规范的应用服务器产品,为复杂应用提供了一个开发和运行平台,对于分布式的企业级应用,提供了易扩展、可伸缩和高安全性等特性。

本文介绍了Apusic应用服务器的体系结构,然后分别介绍了Apusic提供的服务和功能,从而显示Apusic应用服务器对开发大型应用系统的支持能力。

Apusic应用服务器目前已经通过JavaEE的兼容性测试认证,能在第一时间内完成J2EE1.4的测试和认证,不仅表明Apusic应用服务器对J2EE规范一贯和紧密的跟踪,也说明Apusic应用服务器在设计时就是高质量并高度兼容J2EE规范的产品。

这些事实说明Apusic应用服务器已经达到世界级产品的要求。

背景

在网络上信息在源-宿的传递过程中会经过其它的计算机。

一般情况下,中间的计算机不会监听路过的信息。

但在使用比如网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露,如下图所示。

由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。

随着网上支付的不断发展,人们对信息安全的要求越来越高。

SSL/TSL概述

为了在不安全的网络上安全保密的传输关键信息,Netscape公司开发了SSL协议,后来IETF(InternetEngineeringTaskForce)把它标准化了,并且取名为TLS,目前TLS的版本为1.0,TLS1.0的完整版本请参考rfc2246(www.ietf.org)。

旨在达到在开放网络(Internet)上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。

之后IETF(www.ietf.org)对SSL作了标准化,即RFC2246,并将其称为TLS(TransportLayerSecurity),从技术上讲,TLS1.0与SSL3.0的差别非常微小。

基于SSL/TLS协议的通信双方的应用数据是经过加密后传输的,应用数据的加密采用了对称密钥加密方式,通信双方通过SSL/TLS握手协议来获得对称密钥。

为了不让攻击者偷听、篡改或者伪造消息通信的双方需要互相认证,来确认对方确实是他所声称的主体。

SSL/TLS握手协议通过互相发送证书来认证对方,一般来说只需要单向认证,即客户端能确认服务器便可。

但是对于对安全性要求很高的应用往往需要双向认证,以获得更高的安全性。

下面详细讲述建立自己的认证机构,并且利用它来颁发服务器证书和客户端个人证书,然后配置服务器来使用双向认证。

SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。

可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。

不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议,即采用https:

//ip:

port/的方式来访问。

作用

SSL是允许对HTTP请求上的敏感数据加密的技术。

握手、加密和解密过程由Web服务器处理。

SSL协议的作用

IP安全协议/SSL/SSH内容:

SSL(SecureSocketLayer即安全套接层)协议是NetscapeCommunication公司推出在网络传输层之上提供的一种基于非对称密钥和对称密钥技术的用于浏览器和Web服务器之间的安全连接技术。

它是国际上最早应用于电子商务的一种由消费者和商家双方参加的信用卡/借记卡支付协议。

SSL协议支持了电子商务关于数据的安全性、完整性和身份认证的要求,但是它没有保证不可抵赖性的要求。

SSL层要点:

一、作用:

验证最终安全的应用层通信内容。

(加密)。

二、端口:

典型的运行在不同的上层应用的端口。

(不同服务需要配置不同端口+加密方法/压缩模式)。

三、验证:

证书及其签名的确认。

四、密钥:

认证(必要时双认证)后,通过随机数据和密钥交换协议,双方获得密钥或种子,完成加密操作。

SSL协议的主要用途是在两个通信应用程序之间提供私密性和可靠性,这个过程通过3个元素来完成:

(1)握手协议

(2)记录协议(3)警告协议

SSL协议支持三种方式的认证:

双方的相互认证,只认证服务端的认证和双方都不认证。

通过SSL协议的通信过程,SSL协议利用非对称加密算法产生和交换密码;用对称加密算法对

数据进行加密传输。

注意:

1、KI协议是为产生密码和交换密码服务的体系,主要负责CA的管理。

2、TPS是SSL协议应用于HTTP服务

SSH协议:

解决TELNET/FTP协议安全性的工具,支持SSH和SFTP。

即就是Telent和FTP的加密

传输版本。

SSH具有SSH1和SSH2版本。

2、SSH技术安全验证问题:

基于口令和基于密钥验证的技术。

3、SSH机遇密钥验证的过程(服务器验证过程),保证了口令不在网络中传输。

SSL:

解决对应使用HTTP协议的服务安全性问题。

位于传输层和应用层之间,可以提供数据加密传输(不含签名)。

原理:

通过SSL握手交流信息,通过验证,获得密钥,对数据进行加密(属于IP数据包的数据部分)

SSH:

解决对应使用FTP/TELNET协议的服务安全性问题。

位于传输层和应用层之间,可以提供数据加密传输,可以签名。

涉及技术:

CA、PKI。

原理:

通过SSH握手交流信息(C/S访问模式),通过验证,获得密钥,对传输(交流)数据进行加密(属于IP数据包的数据部分),也可看为在系统间建立了加密传输通道。

原理

当我们与一个网站建立https连接时,我们的浏览器与WebServer之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。

具体过程如下:

用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。

服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。

如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。

客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。

如果成功,那么继续。

客户端浏览器为本次会话生成pre-mastersecret,并将其用服务器公钥加密后发送给服务器。

如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。

如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。

如果不在信任列表中,结束本次会话。

如果检查通过,服务器用自己的私钥解密收到的pre-mastersecret,并用它通过某些算法生成本次会话的mastersecret。

客户端与服务器均使用此mastersecret生成本次会话的会话密钥(对称密钥)。

在双方SSL握手结束后传递任何消息均使用此会话密钥。

这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。

客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。

并通知服务器客户端已经完成本次SSL握手。

服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。

并通知客户端服务器已经完成本次SSL握手。

本次握手过程结束,会话已经建立。

双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。

2环境准备

所需软件包

⏹Apusic4.0.2

下载:

⏹JDK1.4.2

用途:

用来产生Apusic使用的秘钥对(keystore)。

下载:

⏹Openssl0.9.9.6

用途:

用来产生CA证书、签名并生成IE可导入的PKCS#12格式私钥。

下载:

http:

//www.openssl.org/

本章主要针对湖北省电子政务一期工程《应用支撑软件招标文件》中软件要求的内容,根据金蝶Apusic4.0的具体真实情况做出响应。

3配置步骤

建立认证授权机构CA

用户可以向可信的第三方认证机构(CA)申请证书,也可以自己做CA,由自己来颁发证书,在本文中将讲述如何自己做证书颁发机构。

本文所使用的CA软件为Openssl。

Openssl用来产生CA证书、证书签名并生成浏览器可导入的PKCS#12格式个人证书。

你可以在Openssl的官方网站http:

//www.openssl.org下载最新版的Openssl。

下面开始介绍建立认证授权机构CA和创建CA根证书:

1)下载并安装OpenSSL,配置两个环境变量,其中前者在安装过程中实现:

OPENSSL_CONF:

c:

\OpenSSL\bin\f

PATH:

C:

\OpenSSL\bin

2)在指定的目录下建立自己的CA目录,例如:

C:

\OpenSSL\CA

C:

\OpenSSL>mkdirCA

3)登录到OpenSSL环境:

C:

\OpenSSL\CA>openssl

OpenSSL>

4)生成数字签名算法DSA参数

格式:

dsaparam-out[数字签名算法DSA参数输出路径][密钥位数]

例如:

dsaparam-outC:

/OpenSSL/ca/dsa_param1024

或者直接在命令环境执行:

C:

\OpenSSL\CA>openssldsaparam-outC:

/OpenSSL/ca/dsa_param1024

5)根据参数生成DSA私钥

格式:

genrsa–out[密钥文件输出路径][数字签名算法DSA参数]

例如:

gendsa-outdsa_keydsa_param

或者直接在命令环境执行:

C:

\OpenSSL\CA>opensslgendsa-outC:

/OpenSSL/ca/dsa_keyC:

/OpenSSL/ca/dsa_param

6)X509证书待签名请求

生成待签名的证书。

格式:

req-new-out[证书文件输出路径]-key[私钥文件路径]

例如:

req-new-outC:

/OpenSSL/ca/ca_req.csr-keyC:

/OpenSSL/ca/dsa_key

或者直接在命令环境执行:

C:

\>opensslreq-new-outC:

/OpenSSL/ca/ca_req.csr-keyC:

/OpenSSL/ca/dsa_key

7)创建X509自签名根证书

用CA私钥自签名。

[注]将自动生成的ca-key.srl文件拷贝到创建的CA目录下.。

格式:

x509-req-in[输入待签发证书文件路径]-out[产生x509证书文件输出路径]-signkey[自签发密钥文件路径]-days[证书有效期]-CA[签发跟证书]-Cakey[根证书密钥文件]-Cacreateserial[创建序列号]

例如:

x509-req-inca_req.csr-outca_cert.cer-signkeydsa_key

或者直接在命令环境执行:

C:

\OpenSSL\CA>opensslx509-req-inC:

/OpenSSL/ca/ca_req.csr-outC:

/OpenSSL/ca/ca_cert.cer-signkeyC:

/OpenSSL/ca/dsa_key-days365

生成服务器端证书

服务器端证书用来向客户端证明服务器的身份,也就是说在SSL协议握手的时候,服务器发给客户端的证书。

生成服务器证书时用到了JDK的密钥管理工具Keytool,本文采用的jdk是sunj2dk1.4.2。

可以在Sun公司的网站下载j2sdk1.4.2。

[注]在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%APUSIC_HOME%"表示Apusic的安装位置。

3.1.1建立服务器证书

1)建立工作目录

在%JDK_HOME%的bin目录下建立自己的server目录,例如:

server

mkdirserver

2)创建服务器私钥

生成server密钥对。

格式:

%JDK_HOME%/bin/keytool-genkey-alias[密钥对别名]-validity[密钥有效期]-keyalg[密钥算法参数]-keysize[密钥位数]-keypass[密钥保护密码]-storepass[存储密码]-dname[别名相关附加信息]-keystore[密钥存储文件路径]

例如:

C:

\>keytool-genkey-aliasapusic_server-keyalgRSA-keysize1024-keypass12345678-storepass12345678-dname"cn=localhost,ou=support,o=apusic,l=shenzhen,st=guangdong,c=CN"-keystoreC:

/OpenSSL/server/my_key_store

C:

\openssl\server>dir

驱动器D中的卷是新加卷

卷的序列号是18FC-D2C1

C:

\apusic\apusic-4.0.2_\jre\bin\server的目录

2006-04-1910:

08

.

2006-04-1910:

08

..

2006-04-1910:

081,368my_key_store

1个文件1,368字节

2个目录1,772,150,784可用字节

C:

\apusic\apusic-4.0.2_\jre\bin\server>

[注]-alias后的apusic_server是密钥对的名字可替换为自己需要的名字;

-keypass与-storepass后的changeit为保护密码必须6位,将其替换为你的密码即可;

-dname为包含的server信息。

其中cn是服务器的名字一定要与WEB服务器中设置的一样。

3)生成服务器证书请求

生成待签名证书。

格式:

%JDK_HOME%/bin/keytool-certreq-alias[证书别名]-sigalg[证书算法参数]-file[产生文件输出路径]-keypass[密钥保护密码]-keystore[存储文件路径]-storepass[存储密码]

例如:

keytool-certreq-aliasapusic_server-sigalgSHA1withRSA-fileC:

/OpenSSL/server/my_server.csr-keypass12345678-keystoreC:

/OpenSSL/server/my_key_store-storepass12345678

4)用CA私钥签名

发布服务器证书。

格式:

opensslx509-req-in[server/server.csr]-out[server/server-cert.pem]-CA[mageCA/ca-cert.pem]-CAkey[mageCA/ca-key.pem]-days365

opensslx509-req-inC:

/OpenSSL/server/my_server.csr-outC:

/OpenSSL/server/my_server-cert.cer-CAC:

/OpenSSL/CA/ca_cert.cer-CAkeyC:

/OpenSSL/CA/dsa_key-days365-set_serial02

Loading'screen'intorandomstate-done

Signatureok

subject=/C=CN/ST=guangdong/L=shenzhen/O=apusic/OU=support/CN=192.168.5.109

GettingCAPrivateKey

[注]先将生成的my_server.csr文件ftp到linux上openssl的目录下的server子目录中,ftp的传输模式应设为bin模式,以下同。

3.1.2将CA根证书和服务器证书导入Apusic

1)导入CA根证书

将根证书导入keystore。

将CA根证书(ca_cert.cer)ftp到Java工作目录下的ca子目录中

格式:

-import-v-trustcacerts-storepass[存储密码]-alias[证书别名]-file[证书文件路径]-keystore[导入文件路径]

例如:

keytool-import-aliasmy_ca_root-fileC:

/OpenSSL/CA/ca_cert.cer-noprompt-keypass12345678-storepass12345678-keystoreC:

/OpenSSL/server/my_key_store

[注]

此处的-storepass为默认的“changeit”。

-alias为CA根证书的别名。

2)导入服务器证书

格式:

%JDK_HOME%/bin/keytool-import-v-trustcacerts-storepasschangeit-aliasapusic_server-fileserver/server-cert.pem-keystoreserver/server_keystore

keytool-import-aliasapusic_server-fileC:

/OpenSSL/server/my_server-cert.cer-noprompt-keypass12345678-storepass12345678-keystoreC:

/OpenSSL/server/my_key_store

[注]此时的-storepass为生成证书时输入密码。

-alias为服务器证书的别名。

3)查看证书

查看CA证书

keytool-list-keystore%JDK_HOME%/jre/lib/security/cacerts

keytool-list-keystoreC:

/OpenSSL/server/my_key_store

或者

keytool-list-keystoreC:

/OpenSSL/server/my_key_store-v-storepass12345678

4)把CA根证书导入信任库truststore:

keytool-import-aliascaroot-file..\ca\ca-cert.cer-noprompt-keypasskeypass-storepasskeypass-keystoretruststore

keytool-list-keystorestruststore-v-storepasskeypass

颁发并发布个人证书

个人证书用来向服务器证明个人的身份,也就是说在SSL协议握手的时候,客户端发给服务器端的证书。

同时个人证书中包含个人信息如用户名等,如果需要这个用户名将作为登录服务器的用户名。

⏹建立Client证书

1)openssl的apps目录下建立自己的Client目录,例如:

client

2)生成Client密钥对

创建RSA参数。

格式:

opensslgenrsa-outclient/my_client_key-key.pem1024

例如:

opensslgenrsa-outC:

/OpenSSL/client/my_client_key1024

3)生成待签名的证书

根据参数生成RSA私钥

格式:

opensslreq-new-outclient/client-req.csr-keyclient/client-key.pem

例如:

opensslreq-new-outC:

/OpenSSL/client/my_client_req.csr-keyC:

/OpenSSL/client/my_client_key

4)用CA私钥签名

发布客户端证书

格式:

opensslx509-req-inclient/client-req.csr-outclient/client-cert.pem-signkeyclient/client-key.pem-CAca/ca-cert.pem-CAkeyca/ca-key.pem-CAcreateserial-days365

例如:

opensslx509-req-inmy_client_req.csr-outmy_client.cer-CAC:

/OpenSSL/CA/ca_cert.cer-CAkeyC:

/OpenSSL/CA/dsa_key-days365-set_serial02

C:

\OpenSSL\CLIENT>opensslx509-req-inC:

/OpenSSL/client/my_client_req.csr-outC:

/OpenSSL/client/my_client.cer-CAC:

/OpenSSL/CA/ca_cert.cer-CAkeyC:

/OpenSSL/CA/dsa_key-days365-set_serial02

Loading'screen'intorandomstate-done

Signatureok

subject=/C=CN/ST=guangdogn/L=shenzhen/O=apusic/OU=support/CN=qiuyilai/emailAddress=qiuyilai@

GettingCAPrivateKey

5)生成Client端可以导入的个人证书

生成PKCS#12格式证书。

格式:

opensslpkcs12-export-clcerts-inclient/client-cert.pem-inkeyclient/client-key.pem-outclient/client.p12

pkcs12[生成PKS12格式证书命令]-export[导出文件]-clerts[仅导出client证书]-in[输入的client证书文件路径]-inkey[client证书密钥文件路径]-out[导出PKS12格式文件路径]

例如:

open

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1