AS400 RPGLE не может использовать REST API с SSL - PullRequest
0 голосов
/ 03 октября 2018

Я успешно использовал IBM AxiscTransport API в AS400 (i 7.2) для использования REST API с HTTP.Тем не менее, когда есть 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));  

Я застрял в этом в течение нескольких месяцев и все еще не могу разрешитьЭто.Любая помощь будет оценена.Благодаря.

1 Ответ

0 голосов
/ 15 октября 2018

Я получил эту работу, выполнив это

pTolerate = 'true' + X'00 ';
pAppID =' API_MAN '+ X'00';
axiscTransportSetProperty (t Handle
: AXISC_PROPERTY_HTTP_SSL
:% addr (pKeyRingFile)
:% addr (pKeyRingSorP)
:% addr (pKeyRingLabel)
:% addr (pV2Cipher)
1ipher * *1010*1iper*:% addr (pTLSCipher)
:% addr (pTLSv11Cipher)
:% addr (pTLSv12Cipher)
:% addr (pTolerate)
:% addr (pAppID));

Необходимо настроить pAppID на ISeries и сертификат SSL в хранилище, связанный с идентификатором приложения.Все остальные параметры были пустыми.

...