You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ada Web Server客户端HTTPS请求失败及Windows下SSL版本编译指导

Ada Web Server(AWS)HTTPS请求失败及Windows编译指南

问题描述

  • HTTP请求通过AWS.Client.Get(url)可正常获取响应,但HTTPS请求触发报错:
    raised PROGRAM_ERROR : SSL not supported.
    raised PROGRAM_ERROR : aws-client.adb:398 finalize/adjust raised exception
    
  • 核心需求:配置AWS支持HTTPS,实现终端用户无需手动下载证书即可使用应用;解决Windows 11环境下带SSL支持的AWS库编译问题(优先使用Alire,其次GPRBuild)。

解决方案

一、优先使用Alire编译带SSL的AWS库

Alire会自动处理所有依赖(包括OpenSSL、XMLAda),无需手动配置,步骤如下:

  1. 确保Windows已安装Alire,可通过官方安装包或包管理工具完成安装
  2. 进入你的Ada项目目录,执行命令添加AWS依赖:
    alr with aws
    
    Alire会自动下载并编译默认启用OpenSSL支持的AWS版本
  3. 编译你的项目:
    alr build
    

二、手动使用GPRBuild编译AWS库(Windows环境)

如果需要基于GitHub源码手动编译,按以下步骤解决问题:

  1. 解决“grep not found”错误:
    • 切换到Git Bash环境执行编译命令(Git Bash自带grep);或在MingW安装器中勾选msys-grep组件完成安装
  2. 正确配置makefile.conf:
    • 打开AWS源码根目录的makefile.conf,设置SSL和XMLAda配置:
      SSL=openssl
      XMLADA=True
      
    • 在文件开头添加Ada_Project_Path,指向你的Ada项目GPR文件所在目录:
      Ada_Project_Path=C:\path\to\your\project\gpr\files
      
  3. 编译执行步骤:
    • 安装Windows版OpenSSL(建议使用MingW预编译包或官方发布版),并将OpenSSL的bin目录加入系统环境变量Path
    • 打开Git Bash进入AWS源码根目录,依次执行:
      mingw32-make setup
      mingw32-make build
      mingw32-make install
      
  4. 免手动证书配置处理:
    • 将系统根证书集合(如Windows系统证书库导出的cert.pem,或OpenSSL提供的cacert.pem)打包到应用目录,在代码中指定证书路径:
      declare
         Config : AWS.Client.Config_Type;
      begin
         AWS.Client.Set_SSL_Certificate (Config, "path/to/embedded/cert.pem");
         Response := AWS.Client.Get (Config, Target_Url);
      end;
      

三、项目导入验证

编译完成后,只需在你的项目GPR文件中添加:

with "aws";

即可正常导入AWS库(Alire会自动处理GPR路径;手动编译需确保AWS的GPR文件已在Ada_Project_Path范围内)

内容的提问来源于stack exchange,提问作者Royal Mail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:35:00