Hello guys.
I am working with MC60 (thru OpenCPU) and I need to send post request to HTTPS server.
I am already sent it to http, but not https.
As I understand I should to configure SSL settings. My OpenCPU libs has no any SSL configure functions or something similar else, so I use AT commands.
I tried different variation of settings (like in this guide https://forums.quectel.com/uploads/short-url/bRyezKC52TxiZpsFq6yinZiGiCF.pdf and other guides for other modules…), but every time when I tried to post message I get error 3815 (http socket connection error).
Now I have this settings:
// Set PDP context
ret = RIL_NW_SetGPRSContext(Ql_GPRS_GetPDPContextId());
echo("<-- Set GPRS PDP context, ret = %d -->\r\n", ret);
if (ret < 0) ok = 0;
// Set APN
ret = RIL_NW_SetAPN(1, APN_NAME, APN_USERID, APN_PASSWD);
echo("<-- Set GPRS APN, ret = %d -->\r\n", ret);
if (ret < 0) ok = 0;
// Open/Activate PDP context
ret = RIL_NW_OpenPDPContext();
echo("<-- Open PDP context, ret = %d -->\r\n", ret);
if (ret < 0) ok = 0;
//Enable SSL
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QSSLCFG=\"sslversion\",1,4\0");//first - ctxindex, second - ssl version
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QSSLCFG=\"seclevel\",1,0\0");//1 - just server auth, server and client auth
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QSSLCFG=\"ciphersuite\",1,\"0X0005\"\0");
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QSSLCFG=\"ignorertctime\",1\0");
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QSSLCFG=\"https\",1\0");
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QSSLCFG=\"httpsctxi\",1\0");//1
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
//Continue with HTTP
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QHTTPCFG=\"contextid\",1\0");//1
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QHTTPCFG=\"sslctxid\",1\0");//1
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
Ql_memset(strAT,0,sizeof(strAT));
Ql_sprintf(strAT, "AT+QIACT=?");
ret = Ql_RIL_SendATCmd(strAT, Ql_strlen(strAT), atResponcePrint, strAT, 0);
if (ret < 0) ok = 0;
// Set HTTP server address (URL)
ret = RIL_HTTP_SetServerURL(HTTP_URL_ADDR, Ql_strlen(HTTP_URL_ADDR));
echo("<-- Set http server URL, ret = %d -->\r\n", ret);
if (ret < 0) ok = 0;
if (!ok) return;
All setting response are OK.
Next I try to post:
ret = RIL_HTTP_RequestToPost(buff, Ql_strlen((char*)buff));
echo("Send post-request, Message:\n%s\n", (char*)buff);
if (ret < 0)
{
echo("Send post-request failed\n", ret);
return;
}
And here I have 3815 error.
What SSL settings I need?
Thanks in advance!