Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 如何在安全主机上调用GET请求';s URL(Https://)是否使用RobotFramework RequestsLibrary?_Ssl_Openssl_Httprequest_Robotframework_Pem - Fatal编程技术网

Ssl 如何在安全主机上调用GET请求';s URL(Https://)是否使用RobotFramework RequestsLibrary?

Ssl 如何在安全主机上调用GET请求';s URL(Https://)是否使用RobotFramework RequestsLibrary?,ssl,openssl,httprequest,robotframework,pem,Ssl,Openssl,Httprequest,Robotframework,Pem,我有一个受密码保护的“.p12”文件,用于尝试使用转换后的“.pem”文件在此主机上调用GET方法的主机。但当我通过RobotFramework进行此调用时,我得到以下错误: SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:661) 我做了以下步骤: 将.p12文件转换为同时包含证书和密钥的.pem文件 openssl pkcs12 -in <input_file&g

我有一个受密码保护的“.p12”文件,用于尝试使用转换后的“.pem”文件在此主机上调用GET方法的主机。但当我通过RobotFramework进行此调用时,我得到以下错误:

SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:661)
我做了以下步骤:

  • 将.p12文件转换为同时包含证书和密钥的.pem文件

    openssl pkcs12 -in <input_file>.p12 -out <output_file>.pem -nodes -passin pass:<password>
    
    openssl pkcs12-in.p12-out.pem-nodes-passin-pass:
    
  • 通过在verify选项中传递.pem文件来调用GET方法

    *** Settings ***
    Library    RequestsLibrary
    ..
    ..
    *** Keywords ***
    Call HTTPS GET method
        Create Session    my_session   https://<host>/<port>       verify=${CURDIR}${/}<output_file>.pem    debug=3
    
        ${response} =    Get Request    my_session    <uri>
        ..
        ..
    
    ***设置***
    图书馆申请图书馆
    ..
    ..
    ***关键词***
    调用HTTPS GET方法
    创建会话my_会话https:///verify=${CURDIR}${/}.pem debug=3
    ${response}=获取请求我的\u会话
    ..
    ..
    

  • 当我使用相同的pem证书并从邮递员那里打电话时,它工作得非常好。我在这里遗漏了什么?

    我找到了解决办法。我不确定它是否合法,但它对我有用。 我相信RequestsLibrary中的RequestKeywords.py中没有传递一个参数

    左边是std库中的文件,右边是我更新的文件


    有了这个变化,它就完美地工作了。由于底层python库请求希望文件详细信息在cert变量中,而不是在verify中。

    是否确实正确解析了文件路径-此处的这部分-
    ${CURDIR}${/}.pem
    ?你能尝试一个绝对路径,看看这会改变什么吗?是的,我是。我为不存在的文件提供了diff路径,错误表已更改。