Stream动态证书
1.功能说明
本模块支持stream块的server,通过API接口动态添加,删除各类型的SSL证书,包括ECC,RSA,国密或者其他类型。
2.依赖模块
动态SSL功能依赖模块:
njet.conf:
load_module modules/njt_http_kv_module.so;
load_module modules/njt_stream_dyn_ssl_module.so;njet_ctrl.conf:
load_module modules/njt_http_sendmsg_module.so;
load_module modules/njt_stream_ssl_api_module.so3.配置示例
3.1 数据面配置
njet.conf配置文件
注意配置文件中需要修改so路径,log路径,替换ssl证书
load_module modules/njt_http_kv_module.so;
load_module modules/njt_stream_dyn_ssl_module.so;
helper broker modules/njt_helper_broker_module.so conf/mqtt.conf;
helper ctrl modules/njt_helper_ctrl_module.so conf/ctrl.conf;
worker_processes 1;
events {
worker_connections 1024;
}
cluster_name helper;
node_name node1;
http {
access_log logs/access.log combined;
dyn_kv_conf conf/iot-work.conf;
upstream demo {
zone demo 128k;
server 192.168.40.141:8080;
keepalive 10240;
}
server {
listen 443 ssl;
ECC 证书(可选)
ssl_certificate certs/server.crt;
ssl_certificate_key certs/server.key;
location / {
return 200 "njet ntls test OK, ssl_protocol is $ssl_protocol (NTLSv1.1 表示国密,其他表示国际)";
}
}
}
stream {
server {
listen 22224 ssl;
server_name dev.test.com;
ssl_certificate certs/ca/ECC/ecc-root_cert.pem;
ssl_certificate_key certs/ca/ECC/ecc-root_private_key.pem;
return "22224 ssl ok";
}
}3.2 控制面配置说明
njet_ctrl.conf
注意配置文件中需要修改so路径,log路径,替换ssl证书
load_module modules/njt_http_sendmsg_module.so;
load_module modules/njt_stream_ssl_api_module.so; #加载ssl api
events {
worker_connections 1024;
}
error_log logs/error_ctrl.log info;
http {
dyn_sendmsg_conf conf/iot-ctrl.conf;
access_log logs/access_ctrl.log combined;
include mime.types;
server {
listen 8081;
location /api {
dyn_module_api; #开启ssl动态配置
}
}
}
cluster_name helper;
node_name node1;该模块支持ACL控制,配置参考
load_module modules/njt_http_sendmsg_module.so;
load_module modules/njt_stream_ssl_api_module.so; #加载ssl api
events {
worker_connections 1024;
}
error_log logs/error_ctrl.log info;
http {
dyn_sendmsg_conf conf/iot-ctrl.conf;
access_log logs/access_ctrl.log combined;
include mime.types;
server {
listen 8081;
location /api {
dyn_module_api;
limit_except GET {
auth_basic "NJET API";
auth_basic_user_file /etc/njet/htpasswd;
}
}
}
}
cluster_name helper;
node_name node1;5.调用样例
5.1 API说明
查询:
GET http://ip+port/api/v1/stream_ssl添加/删除:
PUT http://ip+port/api/v1/stream_ssl5.2 查询stream server ssl 当前配置
请求
curl -v -X GET http://192.168.40.119:8081/api/v1/stream_ssl返回值
* Connected to 192.168.40.119 (192.168.40.119) port 8081
> GET /api/v1/stream_ssl HTTP/1.1
> Host: 192.168.40.119:8081
> User-Agent: curl/8.2.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: njet/3.3.1.1
< Date: Wed, 15 Oct 2025 03:33:14 GMT
< Content-Type: application/json
< Content-Length: 269
< Connection: keep-alive
<
{ [269 bytes data]
100 269 100 269 0 0 4521 0 --:--:-- --:--:-- --:--:-- 4483
* Connection #0 to host 192.168.40.119 left intact
{
"servers": [
{
"listens": [
"0.0.0.0:22224"
],
"serverNames": [
""
],
"certificates": [
{
"cert_type": "ecc",
"certificate": "certs/ca/ECC/ecc-root_cert.pem",
"certificateKey": "certs/ca/ECC/ecc-root_private_key.pem"
}
]
}
]
}5.3 新增stream server ssl国密证书并访问
**前提需要静态配置文件配置指令,ssl_ntls on; **
curl -X PUT http://127.0.0.1:8081/api/v1/stream_ssl -d'
{
"listens": [
"0.0.0.0:22224"
],
"serverNames": [
""
],
"type": "add",
"cert_info": {
"cert_type": "ntls",
"certificate": "data:-----BEGIN CERTIFICATE-----\r\nMIIB3zCCAYWgAwIBAgIBATAKBggqgRzPVQGDdTBLMQswCQYDVQQGEwJBQTELMAkG\r\nA1UECAwCQkIxCzAJBgNVBAoMAkNDMQswCQYDVQQLDAJERDEVMBMGA1UEAwwMZGV2\r\nLnRlc3QuY29tMB4XDTI0MDkyMzAyMDcxN1oXDTM0MDkyMTAyMDcxN1owSzELMAkG\r\nA1UEBhMCQUExCzAJBgNVBAgMAkJCMQswCQYDVQQKDAJDQzELMAkGA1UECwwCREQx\r\nFTATBgNVBAMMDGRldi50ZXN0LmNvbTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IA\r\nBKbuJ+paAmrrYkSMZfVf26U3z2WRsx9ypA1IqvOMmdRf/rmuIeIXAtq+k1Y6i9lN\r\nJUlh2+JQI3eqBr17pOXKmCyjWjBYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgbAMB0G\r\nA1UdDgQWBBRbz5pK7DIv4dk+BxrQBEqKjyMXoTAfBgNVHSMEGDAWgBRs8E9SbP7h\r\nYXIhvYjfWslWaNJT6TAKBggqgRzPVQGDdQNIADBFAiEAqudnZOIoTSGIKcidhNAo\r\nbORmYJf6t9L7yJ7IqXnTgpACIF8ScmcmXFJhemvRVWcgjD327MRclFvtF1zD+cD7\r\ncJk5\r\n-----END CERTIFICATE-----\r\n",
"certificateKey": "data:-----BEGIN PRIVATE KEY-----\r\nMIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQg1ev1Np2CFUoHbxE2\r\nnGsXyxfKezmYId/FlKtospIq1KChRANCAASm7ifqWgJq62JEjGX1X9ulN89lkbMf\r\ncqQNSKrzjJnUX/65riHiFwLavpNWOovZTSVJYdviUCN3qga9e6Tlypgs\r\n-----END PRIVATE KEY-----\r\n",
"certificateEnc": "data:-----BEGIN CERTIFICATE-----\r\nMIIB4DCCAYWgAwIBAgIBAjAKBggqgRzPVQGDdTBLMQswCQYDVQQGEwJBQTELMAkG\r\nA1UECAwCQkIxCzAJBgNVBAoMAkNDMQswCQYDVQQLDAJERDEVMBMGA1UEAwwMZGV2\r\nLnRlc3QuY29tMB4XDTI0MDkyMzAyMDcxN1oXDTM0MDkyMTAyMDcxN1owSzELMAkG\r\nA1UEBhMCQUExCzAJBgNVBAgMAkJCMQswCQYDVQQKDAJDQzELMAkGA1UECwwCREQx\r\nFTATBgNVBAMMDGRldi50ZXN0LmNvbTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IA\r\nBBW4tCnAleXG+s3DRcRJUl94DW3+WpsGIxW+6jZKStQ2w6uVs0Zfpz0fvRZA7xDQ\r\nsG73PwDde68qtq3dZu+ulnGjWjBYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgM4MB0G\r\nA1UdDgQWBBSvkXE4GSFVR4Is8Fw0BKo5fqIkGzAfBgNVHSMEGDAWgBRs8E9SbP7h\r\nYXIhvYjfWslWaNJT6TAKBggqgRzPVQGDdQNJADBGAiEAkXhKWZEYWuB2Aq0XZAYZ\r\nfHOXggK7Gplf+lTPzF2q1ugCIQDUPHl1qdjXJnuY/mv4POLlYr3m8cm05WugJPKL\r\nPXr2Sg==\r\n-----END CERTIFICATE-----\r\n",
"certificateKeyEnc": "data:-----BEGIN PRIVATE KEY-----\r\nMIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQgHE+sUHvFuO9F3Eeg\r\ny1hbTADkrm4vA+Nz5fat8H+/dg6hRANCAAQVuLQpwJXlxvrNw0XESVJfeA1t/lqb\r\nBiMVvuo2SkrUNsOrlbNGX6c9H70WQO8Q0LBu9z8A3XuvKrat3WbvrpZx\r\n-----END PRIVATE KEY-----\r\n"
}
}'使用GET请求查询stream server ssl 当前配置
{
"servers": [
{
"listens": [
"0.0.0.0:22224"
],
"serverNames": [
""
],
"certificates": [
{
"cert_type": "ecc",
"certificate": "certs/ca/ECC/ecc-root_cert.pem",
"certificateKey": "certs/ca/ECC/ecc-root_private_key.pem"
},
{
"cert_type": "ntls",
"certificate": "data:-----BEGIN CERTIFICATE-----\r\nMIIB3zCCAYWgAwIBAgIBATAKBggqgRzPVQGDdTBLMQswCQYDVQQGEwJBQTELMAkG\r\nA1UECAwCQkIxCzAJBgNVBAoMAkNDMQswCQYDVQQLDAJERDEVMBMGA1UEAwwMZGV2\r\nLnRlc3QuY29tMB4XDTI0MDkyMzAyMDcxN1oXDTM0MDkyMTAyMDcxN1owSzELMAkG\r\nA1UEBhMCQUExCzAJBgNVBAgMAkJCMQswCQYDVQQKDAJDQzELMAkGA1UECwwCREQx\r\nFTATBgNVBAMMDGRldi50ZXN0LmNvbTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IA\r\nBKbuJ+paAmrrYkSMZfVf26U3z2WRsx9ypA1IqvOMmdRf/rmuIeIXAtq+k1Y6i9lN\r\nJUlh2+JQI3eqBr17pOXKmCyjWjBYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgbAMB0G\r\nA1UdDgQWBBRbz5pK7DIv4dk+BxrQBEqKjyMXoTAfBgNVHSMEGDAWgBRs8E9SbP7h\r\nYXIhvYjfWslWaNJT6TAKBggqgRzPVQGDdQNIADBFAiEAqudnZOIoTSGIKcidhNAo\r\nbORmYJf6t9L7yJ7IqXnTgpACIF8ScmcmXFJhemvRVWcgjD327MRclFvtF1zD+cD7\r\ncJk5\r\n-----END CERTIFICATE-----\r\n",
"certificateKey": "data:-----BEGIN PRIVATE KEY-----\r\nMIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQg1ev1Np2CFUoHbxE2\r\nnGsXyxfKezmYId/FlKtospIq1KChRANCAASm7ifqWgJq62JEjGX1X9ulN89lkbMf\r\ncqQNSKrzjJnUX/65riHiFwLavpNWOovZTSVJYdviUCN3qga9e6Tlypgs\r\n-----END PRIVATE KEY-----\r\n",
"certificateEnc": "data:-----BEGIN CERTIFICATE-----\r\nMIIB4DCCAYWgAwIBAgIBAjAKBggqgRzPVQGDdTBLMQswCQYDVQQGEwJBQTELMAkG\r\nA1UECAwCQkIxCzAJBgNVBAoMAkNDMQswCQYDVQQLDAJERDEVMBMGA1UEAwwMZGV2\r\nLnRlc3QuY29tMB4XDTI0MDkyMzAyMDcxN1oXDTM0MDkyMTAyMDcxN1owSzELMAkG\r\nA1UEBhMCQUExCzAJBgNVBAgMAkJCMQswCQYDVQQKDAJDQzELMAkGA1UECwwCREQx\r\nFTATBgNVBAMMDGRldi50ZXN0LmNvbTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IA\r\nBBW4tCnAleXG+s3DRcRJUl94DW3+WpsGIxW+6jZKStQ2w6uVs0Zfpz0fvRZA7xDQ\r\nsG73PwDde68qtq3dZu+ulnGjWjBYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgM4MB0G\r\nA1UdDgQWBBSvkXE4GSFVR4Is8Fw0BKo5fqIkGzAfBgNVHSMEGDAWgBRs8E9SbP7h\r\nYXIhvYjfWslWaNJT6TAKBggqgRzPVQGDdQNJADBGAiEAkXhKWZEYWuB2Aq0XZAYZ\r\nfHOXggK7Gplf+lTPzF2q1ugCIQDUPHl1qdjXJnuY/mv4POLlYr3m8cm05WugJPKL\r\nPXr2Sg==\r\n-----END CERTIFICATE-----\r\n",
"certificateKeyEnc": "data:-----BEGIN PRIVATE KEY-----\r\nMIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQgHE+sUHvFuO9F3Eeg\r\ny1hbTADkrm4vA+Nz5fat8H+/dg6hRANCAAQVuLQpwJXlxvrNw0XESVJfeA1t/lqb\r\nBiMVvuo2SkrUNsOrlbNGX6c9H70WQO8Q0LBu9z8A3XuvKrat3WbvrpZx\r\n-----END PRIVATE KEY-----\r\n"
}
]
}
]
}使用gmcurl指定对应ca证书访问server,确认证书生效
gmcurl --http0.9 --gmssl --cacert certs/ca/NTLS/ntls/ca.crt --resolve dev.test.com:22224:192.168.40.119 https://dev.test.com:22224/
GM Version: 1.0.1 Ported by www.gmssl.cn
GM options:
--gmssl, use TLCP protocol
--cert, use sm2 sig pem cert
--key, use sm2 sig pem key
--cert2, use sm2 enc pem cert
--key2, use sm2 enc pem key
22224 ssl ok5.4 新增stream server ssl RSA证书并访问
curl -X PUT http://127.0.0.1:8081/api/v1/stream_ssl -d'{
"listens": [
"0.0.0.0:22224"
],
"serverNames": [
""
],
"type": "add",
"cert_info": {
"cert_type": "rsa",
"certificate": "data:-----BEGIN CERTIFICATE-----\r\nMIIDdjCCAl6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCQ04x\r\nEDAOBgNVBAcMB0JlaWppbmcxDTALBgNVBAoMBHRlc3QxETAPBgNVBAsMCFBlcnNv\r\nbmFsMRUwEwYDVQQDDAxkZXYudGVzdC5jb20wIBcNMjUwOTIyMDgwNDAyWhgPMjEy\r\nNTA4MjkwODA0MDJaMEYxCzAJBgNVBAYTAkNOMQ0wCwYDVQQKDAR0ZXN0MREwDwYD\r\nVQQLDAhQZXJzb25hbDEVMBMGA1UEAwwMZGV2LnRlc3QuY29tMIIBIjANBgkqhkiG\r\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2vJ6qwvbGZqesp+NdXRAhYxfCjAnWxzE7Hv\r\nqHMlQ5+Q2DSBy3v4SGIGVaANuc8qzjb7bBJXljKttfXKNHXhnE/ApNB+last3cI8\r\nuZ08i6bBc2+MehGm/8Q54Z89fbU0VOVw7P4SRGV+uBzX3ZJymR9vU2/LoR2Ap5ZL\r\npt+r1p9iZU5oDz7Ih3gktcMuEm1AtWYui0j86W7TraGlvGe8iRkrrWYozynJpiLi\r\n8TIkal/1GJg7agcSnFlv0UzRQ+a0lMDh3tPCByNCEMuO86V3s5RkIPZabcvWO/yY\r\n/wGSJ24kaqFr25j88u+NdDPdgr3/ZgYu72DgffXk2R20TVXoWwIDAQABo1owWDAJ\r\nBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAdBgNVHQ4EFgQUWda7VLj/rkBbMa0Nqi3i\r\nNTrcOMEwHwYDVR0jBBgwFoAUcujGKYB7oCPIRkP+ZCPx35RLakMwDQYJKoZIhvcN\r\nAQELBQADggEBAHCdCrXTU+++pVqxiRZlqHcY25n8K4hAIv4wxO6eLkKSbdSXOjFD\r\nTon00K0ygfFpJnaqnGXlbCRya9uxL+QmoYBf3VFZ9EAGpdrid29OidvZTxcKi8oC\r\nPJRugXuaz3v+1h+LuknOrTWC38IaVnsy1WX9BO5eMb+73TduzO8ASlibkltByWzI\r\nscb0emp4EKX62D1UHl2IUT8PXDqWr/6qtz8mASVVQ+5xZnNFZCUzP7osICwZy0hP\r\nkq7UTm4Kb1N1Vo5YK8JJ57hDw1SeN1CMAbgvucf9XxJ9OlICvMUMmzz/Q6VCnDy5\r\nCDpTAohBxUtxc6VLRpmxEU+BJCs/0CkZ17M=\r\n-----END CERTIFICATE-----\r\n",
"certificateKey": "data:-----BEGIN PRIVATE KEY-----\r\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/a8nqrC9sZmp6\r\nyn411dECFjF8KMCdbHMTse+ocyVDn5DYNIHLe/hIYgZVoA25zyrONvtsEleWMq21\r\n9co0deGcT8Ck0H6Vqy3dwjy5nTyLpsFzb4x6Eab/xDnhnz19tTRU5XDs/hJEZX64\r\nHNfdknKZH29Tb8uhHYCnlkum36vWn2JlTmgPPsiHeCS1wy4SbUC1Zi6LSPzpbtOt\r\noaW8Z7yJGSutZijPKcmmIuLxMiRqX/UYmDtqBxKcWW/RTNFD5rSUwOHe08IHI0IQ\r\ny47zpXezlGQg9lpty9Y7/Jj/AZInbiRqoWvbmPzy7410M92Cvf9mBi7vYOB99eTZ\r\nHbRNVehbAgMBAAECggEAD9BxjmAKoZ5VyQPg/hpGZIa9hdq+twLBAG014H51eKsT\r\nxgOTKY16C04rOc25nz0x9cwYZMBLLiR3siML695FSlWoaQq0j9w5iNWa5gwgdrp1\r\nxvn96rkknoLGnruPfUrdd5oRBJ36Ql5O5Bpglx9EinP3YuGckBimNVzhrnf8yVlH\r\n+ftj8v9zq5Dbb1RxoBHXk26E40AtN/eUpTpmVHJ/XtlM7L/zg7zwgPQaYdgauCb8\r\nrg403XNxFWweeyoDPtqEYHoucSiFdTWvwpluLBEMGmyq7wfVNs9e8pSiy2m+kxa6\r\nE+gQFKNe0+E+EH6Pud85vOPxZhpIiwGIRhpjm3S4AQKBgQDAF62GdBnlI0wpj7xG\r\nEd+nVuAd+zDll/PVIezpE2QqIERdaFpdXj6ydFtgYs/7pu5djrdNW5KSSIesqseW\r\ngwvz2Bra5pkqTnAQTJdcHpB0NWnsDVSNgzrBzZvIoc36gVw7onFf/H7yOCfPwxmY\r\n2d/wwF9XrSWU6BLVs5zDr5ekWwKBgQD/GuzFoNijYvL1g14AbDEh6AvnmJoQB7La\r\nQg3ueJb1To7e6Rq5KF3NA6KRIyQNK5KGGvXtRNSdqhVhR3/2O3/NmQzmlMv4nWVO\r\niCWZaRyB9yO88vyuMy4JIhGxjLnTiAALbOlEForFfz++vpRzMjEudlp3hsYdrUWt\r\nDcSxXD4MAQKBgB9q//+wt5eJqWhW0QVo4Pq+s9NThVDYBJKEhPouKMDXHDdm3PjO\r\ndFS9wUBHiRrw16XHtOVbJ+LzJ/WuzQwqDOdqHiJVexG3WI7h6BOyEBBhuBxapcyr\r\nfQ27slIjXMwvIkXCsOZxJtY5JxHNKD+eywjWfgGaGT58oq//O5GqA5RnAoGBALrK\r\niUIwA1CnXEUe+o6Oqe8szMK4v14rdO9RXIgXrllSO1THFHUtNHmwRrHFLFmkZPZi\r\n+V3Rf2kup9cCFpVCfdMaVRLlMvEItqwpDnblOyWCw51Pwmr/OJ8hXhlGdK6Jr5au\r\nGaNsahIwmYleXK54uwBNUvKgMaJ7REBxi2teomQBAoGABXxGQYkeQaKN9/CwOm8N\r\npervuCRAAJ5VZIAC69J1mYDp+nQHN/7QLBv7iqF4FnrPs+ebGkHjgjH7eG1q0X3s\r\nyEmSAmyfFeF4/ylCVhTKbUywebv4zXNqtpNchpe55QVcV/2Dld45QNCSXJf/PPwI\r\n9M2oSf34CLCOB48Mb4FrF3M=\r\n-----END PRIVATE KEY-----\r\n"
}
}'查询更新结果
{
"servers": [
{
"listens": [
"0.0.0.0:22224"
],
"serverNames": [
""
],
"certificates": [
{
"cert_type": "ecc",
"certificate": "certs/ca/ECC/ecc-root_cert.pem",
"certificateKey": "certs/ca/ECC/ecc-root_private_key.pem"
},
{
"cert_type": "rsa",
"certificate": "data:-----BEGIN CERTIFICATE-----\r\nMIIDdjCCAl6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCQ04x\r\nEDAOBgNVBAcMB0JlaWppbmcxDTALBgNVBAoMBHRlc3QxETAPBgNVBAsMCFBlcnNv\r\nbmFsMRUwEwYDVQQDDAxkZXYudGVzdC5jb20wIBcNMjUwOTIyMDgwNDAyWhgPMjEy\r\nNTA4MjkwODA0MDJaMEYxCzAJBgNVBAYTAkNOMQ0wCwYDVQQKDAR0ZXN0MREwDwYD\r\nVQQLDAhQZXJzb25hbDEVMBMGA1UEAwwMZGV2LnRlc3QuY29tMIIBIjANBgkqhkiG\r\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2vJ6qwvbGZqesp+NdXRAhYxfCjAnWxzE7Hv\r\nqHMlQ5+Q2DSBy3v4SGIGVaANuc8qzjb7bBJXljKttfXKNHXhnE/ApNB+last3cI8\r\nuZ08i6bBc2+MehGm/8Q54Z89fbU0VOVw7P4SRGV+uBzX3ZJymR9vU2/LoR2Ap5ZL\r\npt+r1p9iZU5oDz7Ih3gktcMuEm1AtWYui0j86W7TraGlvGe8iRkrrWYozynJpiLi\r\n8TIkal/1GJg7agcSnFlv0UzRQ+a0lMDh3tPCByNCEMuO86V3s5RkIPZabcvWO/yY\r\n/wGSJ24kaqFr25j88u+NdDPdgr3/ZgYu72DgffXk2R20TVXoWwIDAQABo1owWDAJ\r\nBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAdBgNVHQ4EFgQUWda7VLj/rkBbMa0Nqi3i\r\nNTrcOMEwHwYDVR0jBBgwFoAUcujGKYB7oCPIRkP+ZCPx35RLakMwDQYJKoZIhvcN\r\nAQELBQADggEBAHCdCrXTU+++pVqxiRZlqHcY25n8K4hAIv4wxO6eLkKSbdSXOjFD\r\nTon00K0ygfFpJnaqnGXlbCRya9uxL+QmoYBf3VFZ9EAGpdrid29OidvZTxcKi8oC\r\nPJRugXuaz3v+1h+LuknOrTWC38IaVnsy1WX9BO5eMb+73TduzO8ASlibkltByWzI\r\nscb0emp4EKX62D1UHl2IUT8PXDqWr/6qtz8mASVVQ+5xZnNFZCUzP7osICwZy0hP\r\nkq7UTm4Kb1N1Vo5YK8JJ57hDw1SeN1CMAbgvucf9XxJ9OlICvMUMmzz/Q6VCnDy5\r\nCDpTAohBxUtxc6VLRpmxEU+BJCs/0CkZ17M=\r\n-----END CERTIFICATE-----\r\n",
"certificateKey": "data:-----BEGIN PRIVATE KEY-----\r\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/a8nqrC9sZmp6\r\nyn411dECFjF8KMCdbHMTse+ocyVDn5DYNIHLe/hIYgZVoA25zyrONvtsEleWMq21\r\n9co0deGcT8Ck0H6Vqy3dwjy5nTyLpsFzb4x6Eab/xDnhnz19tTRU5XDs/hJEZX64\r\nHNfdknKZH29Tb8uhHYCnlkum36vWn2JlTmgPPsiHeCS1wy4SbUC1Zi6LSPzpbtOt\r\noaW8Z7yJGSutZijPKcmmIuLxMiRqX/UYmDtqBxKcWW/RTNFD5rSUwOHe08IHI0IQ\r\ny47zpXezlGQg9lpty9Y7/Jj/AZInbiRqoWvbmPzy7410M92Cvf9mBi7vYOB99eTZ\r\nHbRNVehbAgMBAAECggEAD9BxjmAKoZ5VyQPg/hpGZIa9hdq+twLBAG014H51eKsT\r\nxgOTKY16C04rOc25nz0x9cwYZMBLLiR3siML695FSlWoaQq0j9w5iNWa5gwgdrp1\r\nxvn96rkknoLGnruPfUrdd5oRBJ36Ql5O5Bpglx9EinP3YuGckBimNVzhrnf8yVlH\r\n+ftj8v9zq5Dbb1RxoBHXk26E40AtN/eUpTpmVHJ/XtlM7L/zg7zwgPQaYdgauCb8\r\nrg403XNxFWweeyoDPtqEYHoucSiFdTWvwpluLBEMGmyq7wfVNs9e8pSiy2m+kxa6\r\nE+gQFKNe0+E+EH6Pud85vOPxZhpIiwGIRhpjm3S4AQKBgQDAF62GdBnlI0wpj7xG\r\nEd+nVuAd+zDll/PVIezpE2QqIERdaFpdXj6ydFtgYs/7pu5djrdNW5KSSIesqseW\r\ngwvz2Bra5pkqTnAQTJdcHpB0NWnsDVSNgzrBzZvIoc36gVw7onFf/H7yOCfPwxmY\r\n2d/wwF9XrSWU6BLVs5zDr5ekWwKBgQD/GuzFoNijYvL1g14AbDEh6AvnmJoQB7La\r\nQg3ueJb1To7e6Rq5KF3NA6KRIyQNK5KGGvXtRNSdqhVhR3/2O3/NmQzmlMv4nWVO\r\niCWZaRyB9yO88vyuMy4JIhGxjLnTiAALbOlEForFfz++vpRzMjEudlp3hsYdrUWt\r\nDcSxXD4MAQKBgB9q//+wt5eJqWhW0QVo4Pq+s9NThVDYBJKEhPouKMDXHDdm3PjO\r\ndFS9wUBHiRrw16XHtOVbJ+LzJ/WuzQwqDOdqHiJVexG3WI7h6BOyEBBhuBxapcyr\r\nfQ27slIjXMwvIkXCsOZxJtY5JxHNKD+eywjWfgGaGT58oq//O5GqA5RnAoGBALrK\r\niUIwA1CnXEUe+o6Oqe8szMK4v14rdO9RXIgXrllSO1THFHUtNHmwRrHFLFmkZPZi\r\n+V3Rf2kup9cCFpVCfdMaVRLlMvEItqwpDnblOyWCw51Pwmr/OJ8hXhlGdK6Jr5au\r\nGaNsahIwmYleXK54uwBNUvKgMaJ7REBxi2teomQBAoGABXxGQYkeQaKN9/CwOm8N\r\npervuCRAAJ5VZIAC69J1mYDp+nQHN/7QLBv7iqF4FnrPs+ebGkHjgjH7eG1q0X3s\r\nyEmSAmyfFeF4/ylCVhTKbUywebv4zXNqtpNchpe55QVcV/2Dld45QNCSXJf/PPwI\r\n9M2oSf34CLCOB48Mb4FrF3M=\r\n-----END PRIVATE KEY-----\r\n"
}
]
}
]
}使用curl指定对应ca证书访问server,确认证书生效
curl --http0.9 --gmssl --cacert certs/ca/RSA/rsa/ca.crt https://dev.test.com:22224/
22224 ssl ok5.5 删除stream server ssl证书
删除只会在reload后生效并且有效果
curl -X PUT http://127.0.0.1:8081/api/v1/stream_ssl -d'{
"listens": [
"0.0.0.0:22224"
],
"serverNames": [
""
],
"type": "del",
"cert_info": {
"cert_type": "rsa",
"certificate": "data:-----BEGIN CERTIFICATE-----\r\nMIIDdjCCAl6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCQ04x\r\nEDAOBgNVBAcMB0JlaWppbmcxDTALBgNVBAoMBHRlc3QxETAPBgNVBAsMCFBlcnNv\r\nbmFsMRUwEwYDVQQDDAxkZXYudGVzdC5jb20wIBcNMjUwOTIyMDgwNDAyWhgPMjEy\r\nNTA4MjkwODA0MDJaMEYxCzAJBgNVBAYTAkNOMQ0wCwYDVQQKDAR0ZXN0MREwDwYD\r\nVQQLDAhQZXJzb25hbDEVMBMGA1UEAwwMZGV2LnRlc3QuY29tMIIBIjANBgkqhkiG\r\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2vJ6qwvbGZqesp+NdXRAhYxfCjAnWxzE7Hv\r\nqHMlQ5+Q2DSBy3v4SGIGVaANuc8qzjb7bBJXljKttfXKNHXhnE/ApNB+last3cI8\r\nuZ08i6bBc2+MehGm/8Q54Z89fbU0VOVw7P4SRGV+uBzX3ZJymR9vU2/LoR2Ap5ZL\r\npt+r1p9iZU5oDz7Ih3gktcMuEm1AtWYui0j86W7TraGlvGe8iRkrrWYozynJpiLi\r\n8TIkal/1GJg7agcSnFlv0UzRQ+a0lMDh3tPCByNCEMuO86V3s5RkIPZabcvWO/yY\r\n/wGSJ24kaqFr25j88u+NdDPdgr3/ZgYu72DgffXk2R20TVXoWwIDAQABo1owWDAJ\r\nBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAdBgNVHQ4EFgQUWda7VLj/rkBbMa0Nqi3i\r\nNTrcOMEwHwYDVR0jBBgwFoAUcujGKYB7oCPIRkP+ZCPx35RLakMwDQYJKoZIhvcN\r\nAQELBQADggEBAHCdCrXTU+++pVqxiRZlqHcY25n8K4hAIv4wxO6eLkKSbdSXOjFD\r\nTon00K0ygfFpJnaqnGXlbCRya9uxL+QmoYBf3VFZ9EAGpdrid29OidvZTxcKi8oC\r\nPJRugXuaz3v+1h+LuknOrTWC38IaVnsy1WX9BO5eMb+73TduzO8ASlibkltByWzI\r\nscb0emp4EKX62D1UHl2IUT8PXDqWr/6qtz8mASVVQ+5xZnNFZCUzP7osICwZy0hP\r\nkq7UTm4Kb1N1Vo5YK8JJ57hDw1SeN1CMAbgvucf9XxJ9OlICvMUMmzz/Q6VCnDy5\r\nCDpTAohBxUtxc6VLRpmxEU+BJCs/0CkZ17M=\r\n-----END CERTIFICATE-----\r\n",
"certificateKey": "data:-----BEGIN PRIVATE KEY-----\r\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/a8nqrC9sZmp6\r\nyn411dECFjF8KMCdbHMTse+ocyVDn5DYNIHLe/hIYgZVoA25zyrONvtsEleWMq21\r\n9co0deGcT8Ck0H6Vqy3dwjy5nTyLpsFzb4x6Eab/xDnhnz19tTRU5XDs/hJEZX64\r\nHNfdknKZH29Tb8uhHYCnlkum36vWn2JlTmgPPsiHeCS1wy4SbUC1Zi6LSPzpbtOt\r\noaW8Z7yJGSutZijPKcmmIuLxMiRqX/UYmDtqBxKcWW/RTNFD5rSUwOHe08IHI0IQ\r\ny47zpXezlGQg9lpty9Y7/Jj/AZInbiRqoWvbmPzy7410M92Cvf9mBi7vYOB99eTZ\r\nHbRNVehbAgMBAAECggEAD9BxjmAKoZ5VyQPg/hpGZIa9hdq+twLBAG014H51eKsT\r\nxgOTKY16C04rOc25nz0x9cwYZMBLLiR3siML695FSlWoaQq0j9w5iNWa5gwgdrp1\r\nxvn96rkknoLGnruPfUrdd5oRBJ36Ql5O5Bpglx9EinP3YuGckBimNVzhrnf8yVlH\r\n+ftj8v9zq5Dbb1RxoBHXk26E40AtN/eUpTpmVHJ/XtlM7L/zg7zwgPQaYdgauCb8\r\nrg403XNxFWweeyoDPtqEYHoucSiFdTWvwpluLBEMGmyq7wfVNs9e8pSiy2m+kxa6\r\nE+gQFKNe0+E+EH6Pud85vOPxZhpIiwGIRhpjm3S4AQKBgQDAF62GdBnlI0wpj7xG\r\nEd+nVuAd+zDll/PVIezpE2QqIERdaFpdXj6ydFtgYs/7pu5djrdNW5KSSIesqseW\r\ngwvz2Bra5pkqTnAQTJdcHpB0NWnsDVSNgzrBzZvIoc36gVw7onFf/H7yOCfPwxmY\r\n2d/wwF9XrSWU6BLVs5zDr5ekWwKBgQD/GuzFoNijYvL1g14AbDEh6AvnmJoQB7La\r\nQg3ueJb1To7e6Rq5KF3NA6KRIyQNK5KGGvXtRNSdqhVhR3/2O3/NmQzmlMv4nWVO\r\niCWZaRyB9yO88vyuMy4JIhGxjLnTiAALbOlEForFfz++vpRzMjEudlp3hsYdrUWt\r\nDcSxXD4MAQKBgB9q//+wt5eJqWhW0QVo4Pq+s9NThVDYBJKEhPouKMDXHDdm3PjO\r\ndFS9wUBHiRrw16XHtOVbJ+LzJ/WuzQwqDOdqHiJVexG3WI7h6BOyEBBhuBxapcyr\r\nfQ27slIjXMwvIkXCsOZxJtY5JxHNKD+eywjWfgGaGT58oq//O5GqA5RnAoGBALrK\r\niUIwA1CnXEUe+o6Oqe8szMK4v14rdO9RXIgXrllSO1THFHUtNHmwRrHFLFmkZPZi\r\n+V3Rf2kup9cCFpVCfdMaVRLlMvEItqwpDnblOyWCw51Pwmr/OJ8hXhlGdK6Jr5au\r\nGaNsahIwmYleXK54uwBNUvKgMaJ7REBxi2teomQBAoGABXxGQYkeQaKN9/CwOm8N\r\npervuCRAAJ5VZIAC69J1mYDp+nQHN/7QLBv7iqF4FnrPs+ebGkHjgjH7eG1q0X3s\r\nyEmSAmyfFeF4/ylCVhTKbUywebv4zXNqtpNchpe55QVcV/2Dld45QNCSXJf/PPwI\r\n9M2oSf34CLCOB48Mb4FrF3M=\r\n-----END PRIVATE KEY-----\r\n"
}
}'返回值
{"code":0,"msg":"success."}reload后再次查询
{
"servers": [
{
"listens": [
"0.0.0.0:22224"
],
"serverNames": [
""
],
"certificates": [
{
"cert_type": "ecc",
"certificate": "/etc/njet/NJet3.4-stream-dyn-ssl/certs/ca/ECC/ecc-root_cert.pem",
"certificateKey": "/etc/njet/NJet3.4-stream-dyn-ssl/certs/ca/ECC/ecc-root_private_key.pem"
}
]
}
]
}