[{"data":1,"prerenderedAt":1396},["ShallowReactive",2],{"navigation_docs":3,"-docs-api-zmq-protocol":86,"-docs-api-zmq-protocol-surround":1391},[4,22,31,48,65],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Api","\u002Fdocs\u002Fapi","docs\u002Fapi",[9,13,17],{"title":10,"path":11,"stem":12},"CLI Reference","\u002Fdocs\u002Fapi\u002Fcli-reference","docs\u002Fapi\u002F1.cli-reference",{"title":14,"path":15,"stem":16},"ZMQ Protocol Reference","\u002Fdocs\u002Fapi\u002Fzmq-protocol","docs\u002Fapi\u002F2.zmq-protocol",{"title":18,"path":19,"stem":20},"Error Codes","\u002Fdocs\u002Fapi\u002Ferror-codes","docs\u002Fapi\u002F3.error-codes",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Community","\u002Fdocs\u002Fcommunity","docs\u002Fcommunity",[27],{"title":28,"path":29,"stem":30},"Contributing","\u002Fdocs\u002Fcommunity\u002Fcontributing","docs\u002Fcommunity\u002F1.contributing",{"title":32,"path":33,"stem":34,"children":35,"page":21},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002Fconcepts",[36,40,44],{"title":37,"path":38,"stem":39},"Architecture","\u002Fdocs\u002Fconcepts\u002Farchitecture","docs\u002Fconcepts\u002F1.architecture",{"title":41,"path":42,"stem":43},"Certificate Lifecycle","\u002Fdocs\u002Fconcepts\u002Fcertificate-lifecycle","docs\u002Fconcepts\u002F2.certificate-lifecycle",{"title":45,"path":46,"stem":47},"Security Model","\u002Fdocs\u002Fconcepts\u002Fsecurity-model","docs\u002Fconcepts\u002F3.security-model",{"title":49,"path":50,"stem":51,"children":52,"page":21},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[53,57,61],{"title":54,"path":55,"stem":56},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002Fgetting-started\u002F1.introduction",{"title":58,"path":59,"stem":60},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002Fgetting-started\u002F2.installation",{"title":62,"path":63,"stem":64},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002Fgetting-started\u002F3.quick-start",{"title":66,"path":67,"stem":68,"children":69,"page":21},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides",[70,74,78,82],{"title":71,"path":72,"stem":73},"Configuration","\u002Fdocs\u002Fguides\u002Fconfiguration","docs\u002Fguides\u002F1.configuration",{"title":75,"path":76,"stem":77},"Certificate Profiles","\u002Fdocs\u002Fguides\u002Fcertificate-profiles","docs\u002Fguides\u002F2.certificate-profiles",{"title":79,"path":80,"stem":81},"Docker Deployment","\u002Fdocs\u002Fguides\u002Fdocker-deployment","docs\u002Fguides\u002F3.docker-deployment",{"title":83,"path":84,"stem":85},"Importing an Existing CA","\u002Fdocs\u002Fguides\u002Fimporting-existing-ca","docs\u002Fguides\u002F4.importing-existing-ca",{"id":87,"title":14,"body":88,"description":1385,"extension":1386,"links":1387,"meta":1388,"navigation":1220,"path":15,"seo":1389,"stem":16,"__hash__":1390},"docs\u002Fdocs\u002Fapi\u002F2.zmq-protocol.md",{"type":89,"value":90,"toc":1365},"minimark",[91,95,99,104,169,173,178,273,277,325,329,379,382,386,390,629,633,673,677,755,759,1022,1024,1028,1031,1189,1191,1195,1199,1252,1256,1312,1316,1361],[92,93,14],"h1",{"id":94},"zmq-protocol-reference",[96,97,98],"p",{},"The uPKI CA exposes two ZMQ REP sockets. Clients communicate using ZMQ REQ sockets with JSON payloads.",[100,101,103],"h2",{"id":102},"transport","Transport",[105,106,107,120],"table",{},[108,109,110],"thead",{},[111,112,113,117],"tr",{},[114,115,116],"th",{},"Property",[114,118,119],{},"Value",[121,122,123,137,145,153,161],"tbody",{},[111,124,125,129],{},[126,127,128],"td",{},"Protocol",[126,130,131,132,136],{},"ZMQ REQ\u002FREP (",[133,134,135],"code",{},"zmq.REP",")",[111,138,139,142],{},[126,140,141],{},"Serialization",[126,143,144],{},"JSON strings (UTF-8)",[111,146,147,150],{},[126,148,149],{},"Timeout",[126,151,152],{},"5000 ms",[111,154,155,158],{},[126,156,157],{},"Port 5000",[126,159,160],{},"CA operations (all registered nodes)",[111,162,163,166],{},[126,164,165],{},"Port 5001",[126,167,168],{},"RA registration (first-boot only, clear mode)",[100,170,172],{"id":171},"message-format","Message format",[174,175,177],"h3",{"id":176},"request","Request",[179,180,185],"pre",{"className":181,"code":182,"language":183,"meta":184,"style":184},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"TASK\": \"\u003Ctask_name>\",\n  \"params\": {\n    \"\u003Cparam>\": \"\u003Cvalue>\"\n  }\n}\n","json","",[133,186,187,196,224,239,261,267],{"__ignoreMap":184},[188,189,192],"span",{"class":190,"line":191},"line",1,[188,193,195],{"class":194},"sMK4o","{\n",[188,197,199,202,206,209,212,215,219,221],{"class":190,"line":198},2,[188,200,201],{"class":194},"  \"",[188,203,205],{"class":204},"spNyl","TASK",[188,207,208],{"class":194},"\"",[188,210,211],{"class":194},":",[188,213,214],{"class":194}," \"",[188,216,218],{"class":217},"sfazB","\u003Ctask_name>",[188,220,208],{"class":194},[188,222,223],{"class":194},",\n",[188,225,227,229,232,234,236],{"class":190,"line":226},3,[188,228,201],{"class":194},[188,230,231],{"class":204},"params",[188,233,208],{"class":194},[188,235,211],{"class":194},[188,237,238],{"class":194}," {\n",[188,240,242,245,249,251,253,255,258],{"class":190,"line":241},4,[188,243,244],{"class":194},"    \"",[188,246,248],{"class":247},"sBMFI","\u003Cparam>",[188,250,208],{"class":194},[188,252,211],{"class":194},[188,254,214],{"class":194},[188,256,257],{"class":217},"\u003Cvalue>",[188,259,260],{"class":194},"\"\n",[188,262,264],{"class":190,"line":263},5,[188,265,266],{"class":194},"  }\n",[188,268,270],{"class":190,"line":269},6,[188,271,272],{"class":194},"}\n",[174,274,276],{"id":275},"success-response","Success response",[179,278,280],{"className":181,"code":279,"language":183,"meta":184,"style":184},"{\n  \"EVENT\": \"ANSWER\",\n  \"DATA\": \u003Cresult>\n}\n",[133,281,282,286,306,321],{"__ignoreMap":184},[188,283,284],{"class":190,"line":191},[188,285,195],{"class":194},[188,287,288,290,293,295,297,299,302,304],{"class":190,"line":198},[188,289,201],{"class":194},[188,291,292],{"class":204},"EVENT",[188,294,208],{"class":194},[188,296,211],{"class":194},[188,298,214],{"class":194},[188,300,301],{"class":217},"ANSWER",[188,303,208],{"class":194},[188,305,223],{"class":194},[188,307,308,310,313,315,317],{"class":190,"line":226},[188,309,201],{"class":194},[188,311,312],{"class":204},"DATA",[188,314,208],{"class":194},[188,316,211],{"class":194},[188,318,320],{"class":319},"sTEyZ"," \u003Cresult>\n",[188,322,323],{"class":190,"line":241},[188,324,272],{"class":194},[174,326,328],{"id":327},"error-response","Error response",[179,330,332],{"className":181,"code":331,"language":183,"meta":184,"style":184},"{\n  \"EVENT\": \"UPKI ERROR\",\n  \"MSG\": \"\u003Cerror_message>\"\n}\n",[133,333,334,338,357,375],{"__ignoreMap":184},[188,335,336],{"class":190,"line":191},[188,337,195],{"class":194},[188,339,340,342,344,346,348,350,353,355],{"class":190,"line":198},[188,341,201],{"class":194},[188,343,292],{"class":204},[188,345,208],{"class":194},[188,347,211],{"class":194},[188,349,214],{"class":194},[188,351,352],{"class":217},"UPKI ERROR",[188,354,208],{"class":194},[188,356,223],{"class":194},[188,358,359,361,364,366,368,370,373],{"class":190,"line":226},[188,360,201],{"class":194},[188,362,363],{"class":204},"MSG",[188,365,208],{"class":194},[188,367,211],{"class":194},[188,369,214],{"class":194},[188,371,372],{"class":217},"\u003Cerror_message>",[188,374,260],{"class":194},[188,376,377],{"class":190,"line":241},[188,378,272],{"class":194},[380,381],"hr",{},[100,383,385],{"id":384},"port-5000-ca-operations","Port 5000 — CA operations",[174,387,389],{"id":388},"certificate-tasks","Certificate tasks",[105,391,392,408],{},[108,393,394],{},[111,395,396,399,402,405],{},[114,397,398],{},"Task",[114,400,401],{},"Required params",[114,403,404],{},"Optional params",[114,406,407],{},"Response",[121,409,410,425,439,452,481,502,526,547,566,581,596,612],{},[111,411,412,417,420,422],{},[126,413,414],{},[133,415,416],{},"get_ca",[126,418,419],{},"—",[126,421,419],{},[126,423,424],{},"PEM cert string",[111,426,427,432,434,436],{},[126,428,429],{},[133,430,431],{},"get_crl",[126,433,419],{},[126,435,419],{},[126,437,438],{},"Base64 CRL",[111,440,441,446,448,450],{},[126,442,443],{},[133,444,445],{},"generate_crl",[126,447,419],{},[126,449,419],{},[126,451,438],{},[111,453,454,459,464,476],{},[126,455,456],{},[133,457,458],{},"generate",[126,460,461],{},[133,462,463],{},"cn",[126,465,466,469,470,469,473],{},[133,467,468],{},"profile",", ",[133,471,472],{},"sans",[133,474,475],{},"local",[126,477,478],{},[133,479,480],{},"{dn, certificate, serial}",[111,482,483,488,493,497],{},[126,484,485],{},[133,486,487],{},"sign",[126,489,490],{},[133,491,492],{},"csr",[126,494,495],{},[133,496,468],{},[126,498,499],{},[133,500,501],{},"{certificate, serial}",[111,503,504,509,516,522],{},[126,505,506],{},[133,507,508],{},"register",[126,510,511,469,514],{},[133,512,513],{},"seed",[133,515,463],{},[126,517,518,469,520],{},[133,519,468],{},[133,521,472],{},[126,523,524],{},[133,525,480],{},[111,527,528,533,538,543],{},[126,529,530],{},[133,531,532],{},"renew",[126,534,535],{},[133,536,537],{},"dn",[126,539,540],{},[133,541,542],{},"duration",[126,544,545],{},[133,546,501],{},[111,548,549,554,558,563],{},[126,550,551],{},[133,552,553],{},"revoke",[126,555,556],{},[133,557,537],{},[126,559,560],{},[133,561,562],{},"reason",[126,564,565],{},"boolean",[111,567,568,573,577,579],{},[126,569,570],{},[133,571,572],{},"unrevoke",[126,574,575],{},[133,576,537],{},[126,578,419],{},[126,580,565],{},[111,582,583,588,592,594],{},[126,584,585],{},[133,586,587],{},"delete",[126,589,590],{},[133,591,537],{},[126,593,419],{},[126,595,565],{},[111,597,598,603,607,609],{},[126,599,600],{},[133,601,602],{},"view",[126,604,605],{},[133,606,537],{},[126,608,419],{},[126,610,611],{},"certificate details dict",[111,613,614,619,624,626],{},[126,615,616],{},[133,617,618],{},"ocsp_check",[126,620,621],{},[133,622,623],{},"cert",[126,625,419],{},[126,627,628],{},"OCSP status dict",[174,630,632],{"id":631},"profile-tasks","Profile tasks",[105,634,635,645],{},[108,636,637],{},[111,638,639,641,643],{},[114,640,398],{},[114,642,401],{},[114,644,407],{},[121,646,647,659],{},[111,648,649,654,656],{},[126,650,651],{},[133,652,653],{},"list_profiles",[126,655,419],{},[126,657,658],{},"list of profile names",[111,660,661,666,670],{},[126,662,663],{},[133,664,665],{},"get_profile",[126,667,668],{},[133,669,468],{},[126,671,672],{},"profile details dict",[174,674,676],{"id":675},"admin-tasks","Admin tasks",[105,678,679,689],{},[108,680,681],{},[111,682,683,685,687],{},[114,684,398],{},[114,686,401],{},[114,688,407],{},[121,690,691,703,716,729,741],{},[111,692,693,698,700],{},[126,694,695],{},[133,696,697],{},"list_admins",[126,699,419],{},[126,701,702],{},"list of admin DNs",[111,704,705,710,714],{},[126,706,707],{},[133,708,709],{},"add_admin",[126,711,712],{},[133,713,537],{},[126,715,565],{},[111,717,718,723,727],{},[126,719,720],{},[133,721,722],{},"remove_admin",[126,724,725],{},[133,726,537],{},[126,728,565],{},[111,730,731,736,738],{},[126,732,733],{},[133,734,735],{},"list_nodes",[126,737,419],{},[126,739,740],{},"list of node dicts",[111,742,743,748,752],{},[126,744,745],{},[133,746,747],{},"get_node",[126,749,750],{},[133,751,463],{},[126,753,754],{},"node details dict",[174,756,758],{"id":757},"acme-sync-tasks","ACME sync tasks",[105,760,761,773],{},[108,762,763],{},[111,764,765,767,769,771],{},[114,766,398],{},[114,768,401],{},[114,770,404],{},[114,772,407],{},[121,774,775,803,819,833,848,877,893,909,935,951,966,987,1004],{},[111,776,777,782,790,801],{},[126,778,779],{},[133,780,781],{},"acme_sync_account",[126,783,784,469,787],{},[133,785,786],{},"account_id",[133,788,789],{},"jwk",[126,791,792,469,795,469,798],{},[133,793,794],{},"contact",[133,796,797],{},"status",[133,799,800],{},"created_at",[126,802,565],{},[111,804,805,810,814,816],{},[126,806,807],{},[133,808,809],{},"acme_get_account",[126,811,812],{},[133,813,786],{},[126,815,419],{},[126,817,818],{},"account dict",[111,820,821,826,828,830],{},[126,822,823],{},[133,824,825],{},"acme_list_accounts",[126,827,419],{},[126,829,419],{},[126,831,832],{},"list of account dicts",[111,834,835,840,844,846],{},[126,836,837],{},[133,838,839],{},"acme_deactivate_account",[126,841,842],{},[133,843,786],{},[126,845,419],{},[126,847,565],{},[111,849,850,855,865,875],{},[126,851,852],{},[133,853,854],{},"acme_sync_order",[126,856,857,469,860,469,862],{},[133,858,859],{},"order_id",[133,861,786],{},[133,863,864],{},"identifiers",[126,866,867,469,869,469,872],{},[133,868,797],{},[133,870,871],{},"not_before",[133,873,874],{},"not_after",[126,876,565],{},[111,878,879,884,888,890],{},[126,880,881],{},[133,882,883],{},"acme_get_order",[126,885,886],{},[133,887,859],{},[126,889,419],{},[126,891,892],{},"order dict",[111,894,895,900,904,906],{},[126,896,897],{},[133,898,899],{},"acme_list_orders",[126,901,902],{},[133,903,786],{},[126,905,419],{},[126,907,908],{},"list of order dicts",[111,910,911,916,929,933],{},[126,912,913],{},[133,914,915],{},"acme_sync_authorization",[126,917,918,469,921,469,923,469,926],{},[133,919,920],{},"auth_id",[133,922,859],{},[133,924,925],{},"identifier_type",[133,927,928],{},"identifier_value",[126,930,931],{},[133,932,797],{},[126,934,565],{},[111,936,937,942,946,948],{},[126,938,939],{},[133,940,941],{},"acme_get_authorization",[126,943,944],{},[133,945,920],{},[126,947,419],{},[126,949,950],{},"authorization dict",[111,952,953,958,962,964],{},[126,954,955],{},[133,956,957],{},"acme_deactivate_authorization",[126,959,960],{},[133,961,920],{},[126,963,419],{},[126,965,565],{},[111,967,968,973,979,983],{},[126,969,970],{},[133,971,972],{},"acme_issue_certificate",[126,974,975,469,977],{},[133,976,859],{},[133,978,492],{},[126,980,981],{},[133,982,468],{},[126,984,985],{},[133,986,501],{},[111,988,989,994,999,1001],{},[126,990,991],{},[133,992,993],{},"acme_get_certificate",[126,995,996],{},[133,997,998],{},"cert_id",[126,1000,419],{},[126,1002,1003],{},"certificate dict",[111,1005,1006,1011,1016,1020],{},[126,1007,1008],{},[133,1009,1010],{},"acme_revoke_certificate",[126,1012,1013],{},[133,1014,1015],{},"certificate",[126,1017,1018],{},[133,1019,562],{},[126,1021,565],{},[380,1023],{},[100,1025,1027],{"id":1026},"port-5001-ra-registration","Port 5001 — RA registration",[96,1029,1030],{},"Registration is a one-shot operation. The RA presents its seed and CN; the CA issues a certificate.",[179,1032,1034],{"className":181,"code":1033,"language":183,"meta":184,"style":184},"{\n  \"TASK\": \"register\",\n  \"params\": {\n    \"seed\": \"registration-seed\",\n    \"cn\": \"upki-ra\",\n    \"profile\": \"ra\",\n    \"sans\": [{ \"type\": \"DNS\", \"value\": \"upki-ra\" }]\n  }\n}\n",[133,1035,1036,1040,1058,1070,1089,1108,1127,1179,1184],{"__ignoreMap":184},[188,1037,1038],{"class":190,"line":191},[188,1039,195],{"class":194},[188,1041,1042,1044,1046,1048,1050,1052,1054,1056],{"class":190,"line":198},[188,1043,201],{"class":194},[188,1045,205],{"class":204},[188,1047,208],{"class":194},[188,1049,211],{"class":194},[188,1051,214],{"class":194},[188,1053,508],{"class":217},[188,1055,208],{"class":194},[188,1057,223],{"class":194},[188,1059,1060,1062,1064,1066,1068],{"class":190,"line":226},[188,1061,201],{"class":194},[188,1063,231],{"class":204},[188,1065,208],{"class":194},[188,1067,211],{"class":194},[188,1069,238],{"class":194},[188,1071,1072,1074,1076,1078,1080,1082,1085,1087],{"class":190,"line":241},[188,1073,244],{"class":194},[188,1075,513],{"class":247},[188,1077,208],{"class":194},[188,1079,211],{"class":194},[188,1081,214],{"class":194},[188,1083,1084],{"class":217},"registration-seed",[188,1086,208],{"class":194},[188,1088,223],{"class":194},[188,1090,1091,1093,1095,1097,1099,1101,1104,1106],{"class":190,"line":263},[188,1092,244],{"class":194},[188,1094,463],{"class":247},[188,1096,208],{"class":194},[188,1098,211],{"class":194},[188,1100,214],{"class":194},[188,1102,1103],{"class":217},"upki-ra",[188,1105,208],{"class":194},[188,1107,223],{"class":194},[188,1109,1110,1112,1114,1116,1118,1120,1123,1125],{"class":190,"line":269},[188,1111,244],{"class":194},[188,1113,468],{"class":247},[188,1115,208],{"class":194},[188,1117,211],{"class":194},[188,1119,214],{"class":194},[188,1121,1122],{"class":217},"ra",[188,1124,208],{"class":194},[188,1126,223],{"class":194},[188,1128,1130,1132,1134,1136,1138,1141,1143,1147,1149,1151,1153,1156,1158,1161,1163,1166,1168,1170,1172,1174,1176],{"class":190,"line":1129},7,[188,1131,244],{"class":194},[188,1133,472],{"class":247},[188,1135,208],{"class":194},[188,1137,211],{"class":194},[188,1139,1140],{"class":194}," [{",[188,1142,214],{"class":194},[188,1144,1146],{"class":1145},"sbssI","type",[188,1148,208],{"class":194},[188,1150,211],{"class":194},[188,1152,214],{"class":194},[188,1154,1155],{"class":217},"DNS",[188,1157,208],{"class":194},[188,1159,1160],{"class":194},",",[188,1162,214],{"class":194},[188,1164,1165],{"class":1145},"value",[188,1167,208],{"class":194},[188,1169,211],{"class":194},[188,1171,214],{"class":194},[188,1173,1103],{"class":217},[188,1175,208],{"class":194},[188,1177,1178],{"class":194}," }]\n",[188,1180,1182],{"class":190,"line":1181},8,[188,1183,266],{"class":194},[188,1185,1187],{"class":190,"line":1186},9,[188,1188,272],{"class":194},[380,1190],{},[100,1192,1194],{"id":1193},"examples","Examples",[174,1196,1198],{"id":1197},"get-the-ca-certificate","Get the CA certificate",[179,1200,1204],{"className":1201,"code":1202,"language":1203,"meta":184,"style":184},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import zmq\nimport json\n\nctx = zmq.Context()\nsock = ctx.socket(zmq.REQ)\nsock.connect(\"tcp:\u002F\u002F127.0.0.1:5000\")\nsock.send_string(json.dumps({\"TASK\": \"get_ca\", \"params\": {}}))\nreply = json.loads(sock.recv_string())\nca_pem = reply[\"DATA\"]\n","python",[133,1205,1206,1211,1216,1222,1227,1232,1237,1242,1247],{"__ignoreMap":184},[188,1207,1208],{"class":190,"line":191},[188,1209,1210],{},"import zmq\n",[188,1212,1213],{"class":190,"line":198},[188,1214,1215],{},"import json\n",[188,1217,1218],{"class":190,"line":226},[188,1219,1221],{"emptyLinePlaceholder":1220},true,"\n",[188,1223,1224],{"class":190,"line":241},[188,1225,1226],{},"ctx = zmq.Context()\n",[188,1228,1229],{"class":190,"line":263},[188,1230,1231],{},"sock = ctx.socket(zmq.REQ)\n",[188,1233,1234],{"class":190,"line":269},[188,1235,1236],{},"sock.connect(\"tcp:\u002F\u002F127.0.0.1:5000\")\n",[188,1238,1239],{"class":190,"line":1129},[188,1240,1241],{},"sock.send_string(json.dumps({\"TASK\": \"get_ca\", \"params\": {}}))\n",[188,1243,1244],{"class":190,"line":1181},[188,1245,1246],{},"reply = json.loads(sock.recv_string())\n",[188,1248,1249],{"class":190,"line":1186},[188,1250,1251],{},"ca_pem = reply[\"DATA\"]\n",[174,1253,1255],{"id":1254},"issue-a-server-certificate","Issue a server certificate",[179,1257,1259],{"className":1201,"code":1258,"language":1203,"meta":184,"style":184},"sock.send_string(json.dumps({\n    \"TASK\": \"generate\",\n    \"params\": {\n        \"cn\": \"api.example.internal\",\n        \"profile\": \"server\",\n        \"sans\": [{\"type\": \"DNS\", \"value\": \"api.example.internal\"}]\n    }\n}))\nresult = json.loads(sock.recv_string())\n# result[\"DATA\"] = {\"dn\": \"...\", \"certificate\": \"...\", \"serial\": \"...\"}\n",[133,1260,1261,1266,1271,1276,1281,1286,1291,1296,1301,1306],{"__ignoreMap":184},[188,1262,1263],{"class":190,"line":191},[188,1264,1265],{},"sock.send_string(json.dumps({\n",[188,1267,1268],{"class":190,"line":198},[188,1269,1270],{},"    \"TASK\": \"generate\",\n",[188,1272,1273],{"class":190,"line":226},[188,1274,1275],{},"    \"params\": {\n",[188,1277,1278],{"class":190,"line":241},[188,1279,1280],{},"        \"cn\": \"api.example.internal\",\n",[188,1282,1283],{"class":190,"line":263},[188,1284,1285],{},"        \"profile\": \"server\",\n",[188,1287,1288],{"class":190,"line":269},[188,1289,1290],{},"        \"sans\": [{\"type\": \"DNS\", \"value\": \"api.example.internal\"}]\n",[188,1292,1293],{"class":190,"line":1129},[188,1294,1295],{},"    }\n",[188,1297,1298],{"class":190,"line":1181},[188,1299,1300],{},"}))\n",[188,1302,1303],{"class":190,"line":1186},[188,1304,1305],{},"result = json.loads(sock.recv_string())\n",[188,1307,1309],{"class":190,"line":1308},10,[188,1310,1311],{},"# result[\"DATA\"] = {\"dn\": \"...\", \"certificate\": \"...\", \"serial\": \"...\"}\n",[174,1313,1315],{"id":1314},"revoke-a-certificate","Revoke a certificate",[179,1317,1319],{"className":1201,"code":1318,"language":1203,"meta":184,"style":184},"sock.send_string(json.dumps({\n    \"TASK\": \"revoke\",\n    \"params\": {\n        \"dn\": \"\u002FCN=api.example.internal\",\n        \"reason\": \"keyCompromise\"\n    }\n}))\nresult = json.loads(sock.recv_string())\n# result[\"DATA\"] = True\n",[133,1320,1321,1325,1330,1334,1339,1344,1348,1352,1356],{"__ignoreMap":184},[188,1322,1323],{"class":190,"line":191},[188,1324,1265],{},[188,1326,1327],{"class":190,"line":198},[188,1328,1329],{},"    \"TASK\": \"revoke\",\n",[188,1331,1332],{"class":190,"line":226},[188,1333,1275],{},[188,1335,1336],{"class":190,"line":241},[188,1337,1338],{},"        \"dn\": \"\u002FCN=api.example.internal\",\n",[188,1340,1341],{"class":190,"line":263},[188,1342,1343],{},"        \"reason\": \"keyCompromise\"\n",[188,1345,1346],{"class":190,"line":269},[188,1347,1295],{},[188,1349,1350],{"class":190,"line":1129},[188,1351,1300],{},[188,1353,1354],{"class":190,"line":1181},[188,1355,1305],{},[188,1357,1358],{"class":190,"line":1186},[188,1359,1360],{},"# result[\"DATA\"] = True\n",[1362,1363,1364],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":184,"searchDepth":198,"depth":198,"links":1366},[1367,1368,1373,1379,1380],{"id":102,"depth":198,"text":103},{"id":171,"depth":198,"text":172,"children":1369},[1370,1371,1372],{"id":176,"depth":226,"text":177},{"id":275,"depth":226,"text":276},{"id":327,"depth":226,"text":328},{"id":384,"depth":198,"text":385,"children":1374},[1375,1376,1377,1378],{"id":388,"depth":226,"text":389},{"id":631,"depth":226,"text":632},{"id":675,"depth":226,"text":676},{"id":757,"depth":226,"text":758},{"id":1026,"depth":198,"text":1027},{"id":1193,"depth":198,"text":1194,"children":1381},[1382,1383,1384],{"id":1197,"depth":226,"text":1198},{"id":1254,"depth":226,"text":1255},{"id":1314,"depth":226,"text":1315},"Complete reference for the ZMQ REQ\u002FREP protocol between uPKI CA and RA\u002FCLI.","md",null,{},{"title":14,"description":1385},"S3-WUrjRm6wtZQXkfRNvprSLkjt8nNwZw2S3I5qvs0g",[1392,1394],{"title":10,"path":11,"stem":12,"description":1393,"children":-1},"Complete reference for the ca_server.py command-line interface.",{"title":18,"path":19,"stem":20,"description":1395,"children":-1},"ZMQ error responses from uPKI CA.",1775569478524]