G510SSL加载证书应用设计说明
文档版本:V1.0.3
更新日期:2014.08.24
版权所有?2015深圳市广和通无线股份有限公司。保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
注意
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
商标申明
为深圳市广和通无线股份有限公司的注册商标,由所有人拥有。
版本记录
文档版本更新日期说明
V1.0.02015-01-26初始版本
V1.0.12015-01-31增加+GTSSLERR AT命令
V1.0.22015-03-09增加适用型号
序号产品型号说明1G510-Q50-xx
2G610-A20-xx
3G610-Q20-xx
目录
1SSL AT指令 (5)
1.1+GTSSLFILE,加载证书和密钥 (5)
1.2+GTSSLMODE,设置是否需要验证服务端的证书 (8)
1.3+GTSSLERR,获取SSL错误码 (9)
2实例 (12)
3附录 (20)
1SSL AT指令
1.1+GTSSLFILE,加载证书和密钥
该指令用来设置加载SSL的CA证书,KEY,和本地信任证书。
命令语法响应备注
Set AT+GTSSLFILE=
or:
ERROR
设置加载证书的类型和长度,其中
CAFILE和KEYFILE表示加载CA证书
和密钥(一般用于双向认证的情况下,
客户端向服务器传送证书和密钥,即服
务器需要验证客户端的合法性)。
TRUSTFILE表示加载信任证书到本
机,这里信任证书的目的是用于验证服
务端的合法性(单向认证和双向认证均
可能需要验证(具体由+GTSSLMODE
确定)),TRUSTFILE类型的文件最多支
持加载40个。
Read AT+GTSSLFILE?+GTSSLFILE:
e.g.+GTSSLFILE:CAFILE,0
+GTSSLFILE:KEYFILE,0
+GTSSLFILE:TRUSTFILE,1
查询证书的类型是否已经加载,其中CAFILE和KEYFILE最多只能是1个,TRUSTFILE可以是多个。
例如:没有CAFILE类型的证书;没有KEYFILE类型的证书;已经加载TRUSTFILE类型证书1个
Test AT+GTSSLFILE=?+GTSSLFILE:(“CAFILE,KEYFILE
,TRUSTFILE”),(4-8192)
查询可加载证书的类型和证书的长度
下表显示+GTSSLFILE指令参数。
参数说明
备注:这里所有证书掉电不保存,这里的TRUSTFILE信任证书,最多可以加载40个进去。这里加载
的任何类型的文件,必须是base64编码格式。进入ODM模式,出现”>”符号后,如果超过12秒没有输入数据,会自动退出ODM模式,并返回ERROR。
Example:
AT command ready
at+gtsslfile=?
+GTSSLFILE:("CAFILE,KEYFILE,TRUSTFILE"),(4-8192)
OK//查询支持加载的证书类型和证书长度
at+gtsslfile?
+GTSSLFILE:CAFILE,0
+GTSSLFILE:KEYFILE,0
+GTSSLFILE:TRUSTFILE,0
OK//查询加载的证书类型和证书个数,都为0
at+gtsslfile="CAFILE",1557
>
……
OK//加载CA证书OK
at+gtsslfile="CAFILE",1550
>
…….
ERROR//实际大小是1557,所以这里返回错误,传输的是1557
at+gtsslfile?
+GTSSLFILE:CAFILE,1
+GTSSLFILE:KEYFILE,0
+GTSSLFILE:TRUSTFILE,0 OK
at+gtsslfile="KEYFILE",850
>
…..
OK
at+gtsslfile?
+GTSSLFILE:CAFILE,1
+GTSSLFILE:KEYFILE,1
+GTSSLFILE:TRUSTFILE,0 OK
at+gtsslfile="TRUSTFILE",850 >
….
OK
at+gtsslfile?
+GTSSLFILE:CAFILE,1
+GTSSLFILE:KEYFILE,1
+GTSSLFILE:TRUSTFILE,1
OK
1.2+GTSSLMODE,设置是否需要验证服务端的证书
该指令作用是设置是否需要客户端(即GSM模块)验证服务器传过来的证书,1表示需要,0表示不需要,如果需要验证,必须在客户端本地信任列表中,至少有一个信任证书(即,at+gtsslfile?其中TRUSTFILE信任证书至少有一个)
命令语法响应备注
Set AT+GTSSLMODE= eckmode>OK or: ERROR 设置是否需要验证服务器下发证 书。 Read AT+GTSSLMODE?+GTSSLMODE: e.g:+GTSSLMODE:1查询设置的模式,1表示需要验证服务端证书,0表示不需要验证(一般情况下,均为0) Test AT+GTSSLMODE=?+GTSSLMODE:(0-1)查询该条指令设置格式。 下表显示+GTSSLMODE指令参数。 参数说明 Example: at+gtsslmode=? +GTSSLMODE:(0-1) OK at+gtsslmode? +GTSSLMODE:1 OK at+gtsslmode=0 OK at+gtsslmode? +GTSSLMODE:0 OK at+gtsslmode=2 ERROR at+gtsslmode? +GTSSLMODE:0 OK 1.3+GTSSLERR,获取SSL错误码 该指令作用是查询最近一次SSL错误连接产生的错误码,两条指令作用一样。命令语法响应备注 Read AT+GTSSLERR OK or: +GTSSLERR: e.g:+GTSSLERR:-20SSL连接没有发生错误,返回OK,否则返回最近一次连接发生的错误码。 Read AT+GTSSLERR?OK or: +GTSSLERR: e.g:+GTSSLERR:-20的错误码。 下表显示+GTSSLERR指令参数。 参数说明 -1表示参数错误; -2表示SSL连接执行失败; -3表示文件读取错误; -4表示由于socket不能有效读或写,而使连接不能完成; -5表示由于socket不能有效读,而使读写操作不能完成; -6表示由于socket不能有效写,而使读写操作不能完成; -7表示SSL协议错误; -8表示服务端没有响应客户端发起的握手; -9表示SSL连接被服务端主动断开; -10表示未知错误; -11表示证书校验失败(缺少TRUSTFILE信任证书或者证书过期); -12表示证书长度信息不匹配; -13表示缺失RSA加密的证书; -14表示缺失RSA签名的证书; -15表示不能找到公钥信息参数; -16表示未知的证书类型; -17表示客户端证书文件错误; -18表示客户端密钥文件错误; -19表示可信任的服务端证书文件错误; -20表示SSL会话时获取数据超时。 Example: AT+GTSSLERR OK AT+GTSSLERR? OK AT+GTSSLERR? +GTSSLERR:-20 OK AT+GTSSLERR? +GTSSLERR:-11 OK AT+GTSSLERR? +GTSSLERR:-8 OK 2实例 Example1:不需要验证证书即MODE为0 AT command ready +SIM READY at+gtsslfile? +GTSSLFILE:CAFILE,0 +GTSSLFILE:KEYFILE,0 +GTSSLFILE:TRUSTFILE,0 OK at+gtsslmode? +GTSSLMODE:0//查询为普通的连接模式,不需要验证证书 OK at+mipcall=1,"cmnet" OK +MIPCALL:10.79.220.142 at+mipopen=1,,"https://www.sodocs.net/doc/a212249652.html,",443,2 OK +MIPOPEN:1,1 at+mipclose=1 OK +MIPCLOSE:1,1 Example2:设置需要验证模式,缺少信任证书 at+gtsslmode=1 OK at+gtsslmode? +GTSSLMODE:1 OK at+mipopen=1,,"https://www.sodocs.net/doc/a212249652.html,",443,2 OK +MIPOPEN1,0//连接不上 AT+GTSSLERR?//查询原因 +GTSSLERR:-11//证书校验失败,首先推测原因可能是没有TRUSTFILE证书at+gtsslfile?//通过GTSSLFILE查询加载证书情况 +GTSSLFILE:CAFILE,0 +GTSSLFILE:KEYFILE,0 +GTSSLFILE:TRUSTFILE,0//缺少信任证书,即+GTSSLFILE:TRUSTFILE,0 OK Example3:设置需要验证模式,有信任证书,连接不上,原因是需要设置时间,因为需要当前时间去和证书中的时间对比,确认证书是否已经过期。 at+gtsslmode=1//设置需要验证证书模式 OK at+gtsslmode? +GTSSLMODE:1 OK AT+GTSSLFILE="TRUSTFILE",850//加载TRUSTFILE信任证书 > …. OK at+gtsslfile? +GTSSLFILE:CAFILE,0 +GTSSLFILE:KEYFILE,0 +GTSSLFILE:TRUSTFILE,1//未缺少信任证书 OK at+mipopen=1,,"114.255.225.39",20444,2 OK +MIPOPEN1,0//连接失败 AT+GTSSLERR? +GTSSLERR:-11//查询错误码原因,证书校验失败,而上面已经加载了证书;证书过期导致,结合Example4 Example4:在Example3基础上设置了当前时间,便于验证证书的时间 AT+CCLK="15/01/23,15:30:36" //设置时间 OK at+mipopen=1,,"114.255.225.39",20444,2 OK +MIPOPEN:1,1//连接成功 AT+MIPCLOSE=1 OK +MIPCLOSE:1,1 Example5:双向认证之一:不校验服务器证书AT+GTSSLMODE? +GTSSLMODE:0 OK AT+GTSSLFILE? +GTSSLFILE:CAFILE,0 +GTSSLFILE:KEYFILE,0 +GTSSLFILE:TRUSTFILE,0 OK AT+GTSSLFILE="CAFILE",1334 > …. OK AT+GTSSLFILE="KEYFILE",1675 > …. OK AT+GTSSLFILE? +GTSSLFILE:CAFILE,1 +GTSSLFILE:KEYFILE,1 +GTSSLFILE:TRUSTFILE,0 OK AT+MIPOPEN=1,,"188.93.19.231",5555,2 OK +MIPOPEN:1,1 +MIPRTCP: 1,201,350A576564204A616E2032312031353A35383A3034204D534B20323031350A576564204A 616E2032312031353A35383A3035204D534B20323031350A576564204A616E2032312031353A3 5383A3036204D534B20323031350A576564204A616E2032312031353A35383A3037204D534B20 323031350A576564204A616E2032312031353A35383A3038204D534B20323031350A576564204 A616E2032312031353A35383A3039204D534B20323031350A576564204A616E2032312031353A 35383A3130204D534B20323031350A576564204A616E2032312031353A35383A3131204D534B2 0323031350A576564204A616E2032312031353A35383A3132204D534B20323031350A576564204 A616E2032312031353A35383A3133204D534B20323031350A576564204A616E2032312031353A 35383A3134204D534B20323031350A576564204A616E2032312031353A35383A3135204D534B2 0323031350A576564204A616E2032312031353A35383A3136204D534B20323031350A576564204 A616E2032312031353A35383A3137204D534B20323031350A576564204A616E2032312031353A 35383A3138204D534B20323031350A576564204A616E2032312031353A35383A3139204D534B2 0323031350A576564204A616E2032312031353A35383A3230204D534B20323031350A576564204 A616E2032312031353A35383A3231204D534B20323031350A576564204A616E2032312031353A 35383A3232204D534B20323031350A576564204A616E2032312031353A35383A3233204D534B2 0323031350A576564204A616E2032312031353A35383A3234204D534B20323031350A576564204 A616E2032312031353A35383A3235204D534B20323031350A576564204A616E2032312031353A 35383A3236204D534B20323031350A576564204A616E2032312031353A35383A3237204D534B2 0323031350A576564204A616E2032312031353A35383A3238204D534B20323031350A576564204 A616E2032312031353A35383A3239204D534B20323031350A576564204A616E2032312031353A 35383A3330204D534B20323031350A576564204A616E2032312031353A35383A3331204D534B2 0323031350A576564204A616E2032312031353A35383A3332204D534B20323031350A576564204 A616E2032312031353A35383A3333204D534B20323031350A576564204A616E2032312031353A 35383A3334204D534B20323031350A576564204A616E2032312031353A35383A3335204D534B2 0323031350A576564204A616E2032312031353A35383A3336204D534B20323031350A576564204 A616E2032312031353A35383A3337204D534B20323031350A576564204A616E2032312031353A 35383A3338204D534B20323031350A576564204A616E2032312031353A35383A3339204D534B2 0323031350A576564204A616E2032312031353A35383A3430204D534B20323031350A576564204 A616E2032312031353A35383A3431204D534B20323031350A576564204A616E2032312031353A 35383A3432204D534B20323031350A576564204A616E2032312031353A35383A3433204D534B2 0323031350A576564204A616E2032312031353A35383A3434204D534B20323031350A576564204 A616E2032312031353A35383A3435204D534B20323031350A576564204A616E2032312031353A 35383A3436204D534B20323031350A576564204A616E2032312031353A35383A3437204D534B2 0323031350A576564204A616E2032312031353A35383A3438204D534B20323031350A576564204 A616E2032312031353A35383A3439204D534B20323031350A576564204A616E2032312031353A 35383A3530204D534B20323031350A576564204A616E +MIPRTCP:1,201,2032312031353A35383A3531204D534B20323031350A576564204A61 3附录 CA证书实例,注意,本程序仅仅支持base64编码格式的正式,如下所示 -----BEGIN CERTIFICATE----- MIIEUjCCA7ugAwIBAgIMaNRI/dS0fjCIWMzpMA0GCSqGSIb3DQEBBQUAMEExDTAL BgNVBAYeBABDAE4xETAPBgNVBAseCABJAEMAQgBDMR0wGwYDVQQDHhQAcgBvAG8A dABDAEEANwA4ADEAMDAeFw0wOTEyMDMxMTU3NTFaFw0zOTExMjYxMTU3NTFaMH4x DTALBgNVBAYeBABDAE4xGzAZBgNVBAgeEgBHAHUAYQBuAGcAZABvAG4AZzENMAsG A1UEBx4EAEcAWjERMA8GA1UECh4IAEIAYQBuAGsxETAPBgNVBAseCABJAEMAQgBD MRswGQYDVQQDHhIAcwB1AGIAQwBBADcAOAAyADgwgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBAJPVCgBKBJxImKAvTdJmnOJCN8xaO9to+mqKd0dIuyorMkBCBSsC LNbveFTy4YzUQrwZKKbSYxOHFBpwSXMLWMzvQasU1QO6nM1pt6agDKFhyS0g07Md eXurWZBPHjU5Kh6kNAtUgGCwCdwwy7kPqJU+hO6EhMEClzTxiTE0WIULAgMBAAGj ggIQMIICDDAOBgNVHQ8BAQAEBAMCAIYwDwYDVR0TAQEABAUwAwEB/zCByQYDVR0f AQEABIG+MIG7MIG4oIG1oIGyhoGvbGRhcDovLzEyMi4xMzYuNzguMTg6Mzg5L0NO PXJvb3RDQTc4MTAsIENOPXJvb3RDQTc4MTAsIE9VPUNSTERpc3RyaWJ1dGVQb2lu dHMsIERDPWl1Y2FkLCBEQz1pY2JjLCBEQz1jb20sIERDPWNuP2NlcnRpZmljYXRl UmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RjbGFzcz1jUkxEaXN0cmlidXRpb25Q b2ludDAUBglghkgBhvhCAQEBAQAEBAMCAAQwIgYDVR0jAQEABBgwFoAU03ocnyxJ tUIQ6aT51gu0K7uVgRgwgcAGCCsGAQUFBwEBAQEABIGwMIGtMIGqBggrBgEFBQcw AoaBnWxkYXA6Ly8xMjIuMTM2Ljc4LjE4OjM4OS9DTj1yb290Q0E3ODEwLENOPXJv b3RDQTc4MTAsT1U9Y0FDZXJ0aWZpY2F0ZXMsREM9aXVjYWQsIERDPWljYmMsIERD PWNvbSwgREM9Y24/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRp ZmljYXRpb25BdXRob3JpdHkwIAYDVR0OAQEABBYEFNzkkw+GM/atvbKrgpXzayzB FrtiMA0GCSqGSIb3DQEBBQUAA4GBAGjfYnEvvYcoEpeHq+Uv/ZBA9lmcbCdUZ/9h 2QBw8SfR4Lv8LAB9Kp+23oOQTQeEsi5MNlQDxOGKxOUUsmt4DBCLNRevxBmWEpur rUlM/Ar4xte+LXoItI1ZCVDSPjnvLXGopQfaUtS3IlIWYvU5XG9fpGgUX02cqAN2 d5TgyvLY -----END CERTIFICATE-----