api - 带有 PEM 证书的 HTTP 请求

标签 api http ssl pem crystal-lang

这里是我的简单类,用于通过 HTTPS 请求具有 PE​​M 证书的 Web 服务。

require [omit verbose]

class Api

    def initialize
        @ctx = OpenSSL::SSL::Context::Client.new
        @ctx.private_key = "/home/XXXXXX/development.pem"
        @ctx.verify_mode = LibSSL::VerifyMode::NONE
    end

    def customers
        response = HTTP::Client.get "https://XXX.XXX.XXX.XXX:XXXX/api/customers", nil, nil, @ctx
        puts response.status_code
        puts response.body
        puts response.inspect
        nil
    end

end

Api.new.customers

但我只收到 crystal run src/api.cr401 Authorization required

最佳答案

您还需要设置certificate_chain。

在初始化方法中添加这一行

@ctx.certificate_chain = "/home/XXXXXX/development.pem"

关于api - 带有 PEM 证书的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46177781/

相关文章:

java - 运行命令 gradle build 时 API 不运行

c++ - 注册后如何设置窗口的背景颜色?

rest - OneDrive API : Unauthenticated, 必须经过身份验证才能使用 '/drive' 语法

c - 如何实现无损 URL 缩短

http - 不执行http压缩的下限是多少?

facebook - 页面上的 SSL 应用程序运行良好 (https)。如何让非 SSL 访问者可以使用它?

node.js - 从 Sabre 请求 SeatMap 信息时出现错误代码 "ERR.RAF.APPLICATION"是什么意思?

http - 如何在 Java 中安全地处理原始(文件)数据?

ssl - 如何配置 Nginx 网络服务器以使用 AWS RDS SSL,同时在 Nginx 网络服务器和访问者浏览器之间维护 https

scala - Akka Http HTTPS 配置导致 Chrome 返回 ERR_SSL_VERSION_OR_CIPHER_MISMATCH