rest - AS400 RPGLE无法使用SSL的REST API

我已成功使用AS400(i 7.2)中的IBM AxiscTransport API来通过HTTP使用REST API。但是,当有SSL时,我的程序将失败,并显示以下错误。

TransportFlush()调用失败:55:AxisTransportException:无法打开通道
到远端。无法打开与服务器的连接,操作gsk_secure_soc_init()失败。 GSKit错误为410-无法识别同级或收到格式错误的消息。

我的示例源代码:

uri = 'https://jsonplaceholder.typicode.com/posts/1';

propBuf = 'GET' + X'00';                                                       
axiscTransportSetProperty(tHandle: AXISC_PROPERTY_HTTP_METHOD: %addr(propBuf));

propBuf = 'xx.xx.xx.xx' + X'00';                               
propInt = 80;                                                    
rc = axiscTransportSetProperty(tHandle:AXISC_PROPERTY_HTTP_PROXY:
                               %addr(propBuf):                   
                               %addr(propInt));                  

propBuf3 = 'true' + X'00';                                           
rc = axiscTransportSetProperty(tHandle: AXISC_PROPERTY_HTTP_PROXYSSL:
                                   %addr(propBuf3));                 

NONE = 'NONE' + X'00';                                               
propBuf = '/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB' + X'00';     
propBuf3 = 'true' + X'00';                                           
rc = axiscTransportSetProperty(tHandle: AXISC_PROPERTY_HTTP_SSL:     
                               %addr(propBuf):                       
                               %addr(NULLSTR):%addr(NULLSTR):        
                               %addr(NONE):%addr(NONE):              
                               %addr(NONE):%addr(NONE):              
                               %addr(ENABLED):%addr(propBuf3):*NULL);

propBuf3 = 'true' + X'00';                                        
axiscTransportSetProperty(tHandle: AXISC_PROPERTY_CONVERT_PAYLOAD:
                          %addr(propBuf3));  


我在这个问题上停留了几个月,仍然无法解决它。任何帮助将不胜感激。谢谢。

最佳答案

我通过这样做使这个工作

pTolerate ='true'+ X'00';
pAppID ='API_MAN'+ X'00';
axiscTransportSetProperty(t
处理
                         :AXISC_PROPERTY_HTTP_SSL
                         :%addr(pKeyRingFile)
                         :%addr(pKeyRingSorP)
                         :%addr(pKeyRingLabel)
                         :%addr(pV2Cipher)
                         :%addr(pV3Cipher)
                         :%addr(pTLSCipher)
                         :%addr(pTLSv11Cipher)
                         :%addr(pTLSv12Cipher)
                         :%addr(pTolerate)
                         :%addr(pAppID));

需要在ISeries上设置pAppID,并在存储中将SSL证书链接到Application ID。
所有其他参数均为​​空白。

本文翻译自 https://stackoverflow.com/questions/52620684/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 rest ssl ibm-midrange rpgle


相关文章:

python - 在Python中将SQL与IBM_DB连接器一起使用

java - (Java)尽管该链接在浏览器中运行正常,但HTTP GET请求仍可获取400个响应代码

c# - 忽略.Net Standard 2.0中的SSL证书

java - 如何在运行POSTMAN中的自动化测试用例时将文件上载到REST API的Request调用中

wcf - 将带有私钥的SSL .crt证书与WCF的Net.Tcp绑定一起使用

apache - mod_rewrite强制apache24中的ssl

php - 在IBM i 7.1上,是否可以从PHP cURL扩展名访问* SYSTEM证书库?

java - Apache Camel端点向文件AS400 FTP写入:

java - 以编程方式创建REST服务

java - failurejava.lang.IllegalStateException:从Wordpress REST API响应到Android时,应为BEGIN_ARRAY,但应为BEGIN_OBJECT