如何使用RobotFramework RequestsLibrary在安全主机的URL(Https://)上调用GET请求?

时间:2018-01-22 20:31:48

标签: ssl openssl httprequest robotframework pem

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

SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:661)

我做了以下步骤:

  1. 将.p12文件转换为包含 - certificate和keys的.pem文件。

    openssl pkcs12 -in <input_file>.p12 -out <output_file>.pem -nodes -passin pass:<password>
    
  2. 通过在验证选项

    中传递.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>
        ..
        ..
    
  3. 当我使用相同的pem证书并从邮递员拨打电话时,它的工作完全正常。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。我不确定它是否合法,但它为我工作。 我相信在RequestsLibrary中的RequestKeywords.py中传递了一个参数。

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

enter image description here

随着这种变化,它的工作完美。由于底层的python库请求需要cert变量中的文件详细信息,而不是验证。