我使用HTTPS选项+客户端TLS设置Secure Gateway的目的地:启用以访问CN是IP地址的远程HTTPS REST API。
当我执行trx时,Secure Gateway Client收到错误" IP:192.168.56.1不在证书列表中:"。没有CN名称的信息。如果证书尚未上传到SG,则错误消息为" DEPTH_ZERO_SELF_SIGNED_CERT"关于" Secure Gateway客户端故障排除"。所以我认为证书已正确上传,但SG客户端无法解析CN。
Secure Gateway客户端故障排除
https://www.ng.bluemix.net/docs/troubleshoot/SecureGateway/ts_index-gentopic1.html#ts_sg_010
您能教我一下Secure Gateway Client是否支持CN是IP地址的自签名证书吗?
Secure Gateway Client的日志
[2015-07-06 08:16:26.548] [INFO]连接#55正在建立到192.168.56.1:443
[2015-07-06 08:16:26.580] [INFO]连接#55建立到192.168.56.1:443
[2015-07-06 08:16:26.656] [错误]连接#55到目的地
第192.168.56.1:443有错误:IP:192.168.56.1不在证书列表中:
[2015-07-06 08:16:26.676] [信息]连接#55至192.168.56.1:443已关闭
上传的证书文件
CN = 192.168.56.1,OU = demo,O = qit,L = hakozaki,S = tokyo,C =日本
答案 0 :(得分:0)
如果您查看错误消息,它不会说CN,(例如[错误]连接#有错误:主机:。不是证书的CN :),但是证书列表,这让我相信您已经生成了自签名证书不正确。问题是使用FQDN或带有IP_Address的CN生成证书。这不起作用,因为仅在使用SAN时支持IP地址。
使用openssl生成具有IP作为CN的证书的方法:
1)创建一个openssl配置文件,我从/usr/lib/ssl/openssl.cnf中复制了我的
2)在文件中添加alternate_names部分,如下所示:
[ alternate_names ]
IP.1 = <my application's ip>
3)在[v3_ca]部分中,添加以下行:
subjectAltName = @alternate_names
4)在CA_default部分下,取消注释copy_extensions:
# Extension copying option: use with caution.
copy_extensions = copy
5)Gen私钥: openssl genrsa -out private.key 3072
6)具有组织选项的Gen证书: openssl req -new -x509 -key private.key -sha256 -out certificate.pem -days 730 -config
7)合并文件: cat private.key certificate.pem&gt; SAN.pem
8)将SAN.pem文件作为client-TLS证书加载到目标中。
9)将SAN.pem文件加载到本地应用程序并重新启动。
10)您的目的地可以配置为TCP,HTTP或HTTPS,您现在应该可以连接到本地应用程序。
来自: How can I generate a self-signed certificate with SubjectAltName using OpenSSL?