JMETER ssl安全数字证书相关配置

时间:2024-05-20 19:16:51

HTTPS概念:

     有人会说既然有了非对称加密算法,那么直接利用它就可以实现浏览器与Web服务器间通信消息的加解密了。但你要明白一切保障信息安全的手段都是在牺牲性能和易用性的代价下展开的,确实可以在消息传递中直接利用非对称加密算法来实现消息的加解密,但在浏览器与Web服务器之间HTTP协议如此频繁和体积巨大的消息通信场景下,非对称加密算法的性能问题就凸显出来,如果直接采用,将极大影响协议的整体性能。于是,人们就采用变通的方法,同时利用非对称加密算法和对称加密算法实现针对HTTP消息传递的加解密,其中非对称加密算法只参与到对对称加密算法**(对话**)的加密过程中,而大块消息的加解密则由浏览器和Web服务器间协商好的对称加密算法来完成。

另外,任何Web服务器都有可能向浏览器提供建立HTTPS连接所需要的公钥,这里就排除不了一些假冒的服务器提供一些自己伪造的公钥,为了确保Web服务器是值得我浏览器信任的,于是引入了数字证书的概念。为了证明自己是值得信赖的,Web服务器需要向第三方CA机构申请一个数字证书,证书中包含了证书基本信息和服务器的公钥信息,证书的最后面是一个由CA机构的私钥对证书上述信息计算摘要后加密的消息签名信息。浏览器内置了一些权威的根证书,这些根证书中带有对应其发证CA机构的公钥,一旦得到Web服务器的数字证书,浏览器会在第一时间来根据证书信息查找是否存在对应的根证书,如果存在,利用根证书中的公钥解密Web服务器数字证书中的消息签名信息,并与自己计算的证书摘要信息进行比对,从而验证其真实性和完整性,只要通过验证,浏览器会自动信任由这些权威机构颁发的证书。当然在某些特定场景下Web服务器也需要浏览器提供数字证书以证明其可信度。

HTTPS = HTTP + SSL

工作流程:

HTTPS采用SSL/TLS协议实现在通信安全上的保障,主要分为握手阶段和对话阶段。

其中握手阶段的大致的工作流程如下:

(1)首先,浏览器会向服务器发起HTTPS请求,请求消息中包含了自己当前所采用的SSL/TLS协议的版本信息,一个随机数(用于生成在对话阶段的对称加***)支持的加密算法。另外,还将向服务器索要数字证书;

(2)服务器回应浏览器的请求,响应消息中包含确认使用与浏览器相同版本的SSL/TLS协议的回应,一个随机数(用于生成在对话阶段的对称加***),确认将使用浏览器支持的加密算法完成加解密。并将数字证书发给浏览器;

(3)浏览器接到服务器的数字证书后,判断其是否值得信任,如果信任,获取服务器的公钥,将生成一个随机数(用于生成在对话阶段的对称加***)并使用服务器提供的公钥进行加密,向服务器发送请求消息,请求消息中包含了加密后的随机数,编码改变的通知(表示随后的信息都将用双方商定的加密方法和**发送),浏览器握手阶段结束的通知(包含一个之前所有信息的摘要值以校验是否握手阶段通信信息完整)。

(4)服务器确认通知,通过自己的私钥解密被加密随机数,并回应浏览器的请求,响应消息为编码改变的通知(表示随后的信息都将用双方商定的加密方法和**发送),服务器握手阶段结束的通知(包含一个之前所有信息的摘要值以校验是否握手阶段通信信息完整)。

环境以及配置:

1.使用keytool工具制作证书—CMD里输入以下命令:

keytool -genkey-alias xreztento -sigalg MD5withRSA -keyalg RSA -keysize1024-validity10950  -keystore./test.keystore可以使用-sigalg指定消息签名算法,比如MD2withRSA、MD5withRSA、SHA1withRSA等。可以使用-keyalg指定非对称加密算法,比如RSA、DSA等。如果是初次创建keystore,将要求你设置密码信息,制作的文件名为test.keystore 默认在你本地C盘users的文件夹下。

2.查看基本信息

keytool -list-v-keystore./test.keystore

3.查看公钥信息

keytool -list-rfc-keystore./test.keystore

4.导出数字证书

keytool -export-file xreztento.crt -alias xreztento -keystore./test.keystore

5. 导出私钥

我们可以先将证书仓库转换为PKCS12格式,然后利用OpenSSL自带的工具进行私钥

keytool -importkeystore-srckeystore test.keystore -destkeystore test.p12 -deststoretype PKCS12

    openssl pkcs12 -in test.p12 -out extracted.pem -nodes

6.修改jmeter配置文件

修改jmeter 的system.properties的文件,修改如下参数

将javax.net.ssl.keystore=/home/victor/.store修改成你store存放的文件名(这里我是放在jmeter的bin目录下的,所以直接输入文件名即可)

将javax.net.ssl.keyStorePassword=修改成你设置的password。

7.修改完成将生成的证书文件导入到浏览器

JMETER ssl安全数字证书相关配置

一定导入到受信任的根证书颁发机构--之前我导入到个人,发现无法还是会提示链接的安全问题。

 8.重启浏览器,重启电脑。然后再使用jmeter就不会出现提示链接不安全的问题啦。