2017-11-29 11 views
1

CSRと秘密鍵を生成するためのコードをいくつか作成しました。JSONレスポンスを他のファイル拡張子にnice形式で保存する

<textarea>への応答は、適切なCSR /秘密鍵がどのようなものかわかっている場合は、改行でうまく書式設定されます。

プライベートキーを.pfxファイルタイプに保存する際に問題があります。ここでは、それはうまくフォーマットされません。ここで

<textarea>に置かれたとき、それはブラウザでどのように見えるかです:

それはファイルでどのように見えるか
-----BEGIN PRIVATE KEY----- 
MIIEowIBAAKCAQEAsUM5i1BX1NWS1CGsou86LN3oRcfkA63FdqneDLi36602dxQO 
pSPabp8lqR+LgIWq/nIxShbZgc5YwlmhylrqYm1jdHXUQlNhBjsJE6Y0SwybXD9k 
ERyWgFfaFLeUjUTXax01/M9oh4JQ+o4pWz+cw3oUjklH5iviLx34bZMq0k5azLus 
312FRgA1x2AKG4QWUwTijTISYZ4mtLDTli2iqWVvPpLi87hLKTAMmLdJZ8hJkXOJ 
QYRALpiERwX4lhckh1xnr/NfzE+QY0zxGwmvE4Uk0MqT7liUfqPnXiMLIIGuC/pt 
xf2SXQBv/A9eus2jI0gM627iyvbDdkw0E1B+5QIDAQABAoIBAQCjpZM/aSnc5FsM 
GhZ9yWsktqzTlymKt+dfmIzVo8av/hYVMuAeVw42KBilnOi1+zEUfKnCY3vkGXLZ 
4dO6s9pEigZSIuGVZdJh5SiJClymmHnpXOBt572NuQ0tKRosnUxep/YKchRnXciS 
t6G4iu6XjGHjxgVpmkPTCdEqn73drkf4jeQQrXWJQeOFH3b0e7XwvkoBKrjn6Tu3 
uUURrNmeZRQnCGaj51wn8KYejCS7ReL071MdhwgJesCJzTpZFJ+HpLJSZI8FJQpd 
pzX8rZ+4UfXMd1bcSaLMpgRZJrzGLx5uugO2sgTFelF6rzcg+yD+/JOETzSE3Am1 
L5TA7MA1AoGBAPsxFTGAwg3Vvwg2xrSBAaUu2Vu8R3mvCRp2fjX1Q9CUM5vJpkqH 
8h1xX3miVsGF//+W0yoSzVxcoPEALre5kiEQrmKYtXCaL6b4JY3BHJrUl4yIh0iO 
1luFitq/T4R2flmshESd4SolqvdrpTVg3vryj9v9X75sIFlssdV3slZDAoGBALSn 
3coa/8Dha5v+qBnWkHZcVGe/q9OOGJWloAbgI/S9TjcKqwe5u+EtvS2S3MurDbE6 
uUBC85wCqjDelc36mn84f0YXDDy6vtZp0HoErGL7/wXL5zn52iRmVvF31vU1ahcK 
2TT62MYQ8aCr7nNczvG8iF43hbfCd5c5yWDekwe3AoGAQ6REAMCbgP4+IwgdGh5j 
QwgKoBljZfEskmO2OPGDAXfnLdxvW0KggC03eJmuow5ikYEb/Ah0JJsM+9kAu5jN 
MPo8+3AD6/6ZNm08L6ABA/CbnsxlIbTVJHAhpCZAU3tVKvC57YBWUfMyxs3F/0nG 
wezvsF3amnyjeXE7sjA5ZeECgYBzsendTCssaHEVByK64WnFE15OzzaIlsDx3Y89 
t//u9emIYIGlwfIrxLIZ5KsYmCR9syD+oaIH8MDz6SjBMFQPU6xWw93naqVbBYsp 
CaMpBT+Og8ZCn9tvYkcd/2SfxyR5O05dmqSHPESyZEmigfZaZCZlSGOPirAyHiT0 
r7YzwwKBgAQSh1wgnlOaadkKHzItrXf9i9dUaAzuUYj/B/EpZR+y5ckXFuohpczE 
rQ4yJIgvynxKJW7r2AVS0ad/fbgh5YNCaykB8HDhP1ZQY8ng1ae6VoHRQiLZAdKx 
cAqWIvwWEjAFFbHixt4d3OChDlubpeB3p24MlWycc1H63L4RKAto 
-----END PRIVATE KEY----- 

"-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAsUM5i1BX1NWS1CGsou86LN3oRcfkA63FdqneDLi36602dxQO\npSPabp8lqR+LgIWq/nIxShbZgc5YwlmhylrqYm1jdHXUQlNhBjsJE6Y0SwybXD9k\nERyWgFfaFLeUjUTXax01/M9oh4JQ+o4pWz+cw3oUjklH5iviLx34bZMq0k5azLus\n312FRgA1x2AKG4QWUwTijTISYZ4mtLDTli2iqWVvPpLi87hLKTAMmLdJZ8hJkXOJ\nQYRALpiERwX4lhckh1xnr/NfzE+QY0zxGwmvE4Uk0MqT7liUfqPnXiMLIIGuC/pt\nxf2SXQBv/A9eus2jI0gM627iyvbDdkw0E1B+5QIDAQABAoIBAQCjpZM/aSnc5FsM\nGhZ9yWsktqzTlymKt+dfmIzVo8av/hYVMuAeVw42KBilnOi1+zEUfKnCY3vkGXLZ\n4dO6s9pEigZSIuGVZdJh5SiJClymmHnpXOBt572NuQ0tKRosnUxep/YKchRnXciS\nt6G4iu6XjGHjxgVpmkPTCdEqn73drkf4jeQQrXWJQeOFH3b0e7XwvkoBKrjn6Tu3\nuUURrNmeZRQnCGaj51wn8KYejCS7ReL071MdhwgJesCJzTpZFJ+HpLJSZI8FJQpd\npzX8rZ+4UfXMd1bcSaLMpgRZJrzGLx5uugO2sgTFelF6rzcg+yD+/JOETzSE3Am1\nL5TA7MA1AoGBAPsxFTGAwg3Vvwg2xrSBAaUu2Vu8R3mvCRp2fjX1Q9CUM5vJpkqH\n8h1xX3miVsGF//+W0yoSzVxcoPEALre5kiEQrmKYtXCaL6b4JY3BHJrUl4yIh0iO\n1luFitq/T4R2flmshESd4SolqvdrpTVg3vryj9v9X75sIFlssdV3slZDAoGBALSn\n3coa/8Dha5v+qBnWkHZcVGe/q9OOGJWloAbgI/S9TjcKqwe5u+EtvS2S3MurDbE6\nuUBC85wCqjDelc36mn84f0YXDDy6vtZp0HoErGL7/wXL5zn52iRmVvF31vU1ahcK\n2TT62MYQ8aCr7nNczvG8iF43hbfCd5c5yWDekwe3AoGAQ6REAMCbgP4+IwgdGh5j\nQwgKoBljZfEskmO2OPGDAXfnLdxvW0KggC03eJmuow5ikYEb/Ah0JJsM+9kAu5jN\nMPo8+3AD6/6ZNm08L6ABA/CbnsxlIbTVJHAhpCZAU3tVKvC57YBWUfMyxs3F/0nG\nwezvsF3amnyjeXE7sjA5ZeECgYBzsendTCssaHEVByK64WnFE15OzzaIlsDx3Y89\nt//u9emIYIGlwfIrxLIZ5KsYmCR9syD+oaIH8MDz6SjBMFQPU6xWw93naqVbBYsp\nCaMpBT+Og8ZCn9tvYkcd/2SfxyR5O05dmqSHPESyZEmigfZaZCZlSGOPirAyHiT0\nr7YzwwKBgAQSh1wgnlOaadkKHzItrXf9i9dUaAzuUYj/B/EpZR+y5ckXFuohpczE\nrQ4yJIgvynxKJW7r2AVS0ad/fbgh5YNCaykB8HDhP1ZQY8ng1ae6VoHRQiLZAdKx\ncAqWIvwWEjAFFbHixt4d3OChDlubpeB3p24MlWycc1H63L4RKAto\n-----END PRIVATE KEY-----" 

マイCSRコード:

var csrResult = (JSON.parse(csr)) 
var csrResultResdata = JSON.parse(csrResult["resdata"]["csrgen"]["context"]) 
var csrResultResdataCSR = csrResultResdata["csr"] 
var csrSpliter = csrResultResdataCSR.split("\n\n") 
var csrOnly = csrSpliter[0] 
var privateKeyOnly = csrSpliter[1] 
var exportName = "private_key" 
downloadObjectAsJson(privateKeyOnly, exportName) 

ファイルのコードとして保存:

function downloadObjectAsJson(exportObj, exportName){ 
    var dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(exportObj)); 
    var downloadAnchorNode = document.createElement('a'); 
    downloadAnchorNode.setAttribute("href",  dataStr); 
    downloadAnchorNode.setAttribute("download", exportName + ".pfx"); 
    downloadAnchorNode.click(); 
    downloadAnchorNode.remove(); 
} 

私はファイルのコンテンツをフォーマットする際に助けが必要です。

APIから元の応答は次のとおりです。

{ 
    "result": { 
     "code": "0", 
     "msg": "Command completed successfully" 
    }, 
    "resdata": { 
     "csrgen": { 
      "context": "{\"csr\":\"-----BEGIN NEW CERTIFICATE REQUEST-----\\nMIICtjCCAZ4CAQAwcTELMAkGA1UEBhMCTVkxETAPBgNVBAgTCFNlbGFuZ29yMRUw\\nEwYDVQQHEwxQdWNob25nIEpheWExDzANBgNVBAoMBuerpeWNqzEPMA0GA1UECwwG\\n56ul5Y2rMRYwFAYDVQQDEw1hYmMudGt0YW4uY29tMIIBIjANBgkqhkiG9w0BAQEF\\nAAOCAQ8AMIIBCgKCAQEAj3SON7mz0TZwFHAfy/m3vKICH2BjaZdWJWi7ZPLo2uYC\\n6070cU7hd5iM8+q7VEYSUJb8XisuGpKSakx0xWXuXkJfrciR9P5dypEWAUle3e+z\\nHaQMhu9eJu7W0do96f8WLJoy/T1jYIF6p2hhwRy368FrUtWGJQ+6SH5MTTRytOl5\\nayPdvJiW2AmTwv26OG47eDXZqQOFO+MBKd12DYZxBDTpswubhs1rYT5tA5yQA6HP\\ndG+40LxoNqcZVJ/aYvftOVS3JSe4qkA68af8fNqq9NctmPvHWhwp9mv5EBpR/bWw\\nGYcwDawGbAz34LaxBYI3O8Vy+RhsVQKRU/1AFxqaswIDAQABoAAwDQYJKoZIhvcN\\nAQELBQADggEBAHW577j16rtKjCoSE0EBKw+Tttju+nAMqN4YroKS4jmHMPmvGxlc\\nasXXLGC/KDeCjrrNiyXS5aTKPNNkJZ19eZvoyfgAnQ7Ui88iZIwW0DJLRjGne0rm\\nWnRbwelNq2QANx3moGoyxYNmNibDmB/SKpZouqKYz5AczgyPG7eNXT9mFYduuUPW\\n3jYPE/eih9st6IhTBspCQ6diX26BYzClIBrwFT+GdMZhlnWvGrNmE3KVudjq1qDz\\nXdNlKroHJxk79x47UhBLB1TmFWeu7l6KSRku+S4Ubcym+OVZSWaeFcdlW8Uaj8F0\\nq4+QlP37qyeMSq8tvi6fTcs8ZZjPAozlt/k=\\n-----END NEW CERTIFICATE REQUEST-----\\n\\n-----BEGIN PRIVATE KEY-----\\nMIIEowIBAAKCAQEAj3SON7mz0TZwFHAfy/m3vKICH2BjaZdWJWi7ZPLo2uYC6070\\ncU7hd5iM8+q7VEYSUJb8XisuGpKSakx0xWXuXkJfrciR9P5dypEWAUle3e+zHaQM\\nhu9eJu7W0do96f8WLJoy/T1jYIF6p2hhwRy368FrUtWGJQ+6SH5MTTRytOl5ayPd\\nvJiW2AmTwv26OG47eDXZqQOFO+MBKd12DYZxBDTpswubhs1rYT5tA5yQA6HPdG+4\\n0LxoNqcZVJ/aYvftOVS3JSe4qkA68af8fNqq9NctmPvHWhwp9mv5EBpR/bWwGYcw\\nDawGbAz34LaxBYI3O8Vy+RhsVQKRU/1AFxqaswIDAQABAoIBAEEFmoSlllyIqSqK\\nW88vg9lrMT0ZilXM844HN5EdDPBS+xW+9sr47vcvXQwd5AThseF3XjIsrjv7HYQy\\n3Wavuehde1Kgq495T/fF5Ux1/hroT65qsgbjLjDFZvc9TXznUxyqU9w22/ldFsQU\\nauKF6tNgGw4znBbmVxAOtvTzhd57muy+L3iRAVLg3nRz8MOfOxNXibTqDmj845MQ\\nUYN54D8ROclf26BdkxswMNIJ2qDx1D2YR3x/grUaACIrAHa2jBC+AS4PFU4teKGf\\nQ7+USsEu2vU2/FMi75/FA63TiSlRxSB1Qtlaii/SODpoV7k3bfcU6s5hec3ypwpX\\nVwJyBvkCgYEAxhR6vwYhzje8KTzwYaAqrcggWg3O0gpMo1XE8xE/TjrrUe5INzJ+\\ncGo59Uz2s9W10eQBp56SJrpkAJBp40Ck87eG5TnMLMS30jVwCoCzAaadXpk9ihmS\\nTAbjC0l8LQRWmbP1N6NfOkdsRxUv5okZPGfdnIfIYiW2dfEa++YR48cCgYEAuWcT\\nvbFMM+V6YeKzoUiOKauLq0vIoGFLYme1BQRMRk977qsKlfnk//CIuqyId3hi/vTn\\nVNmLnv6wy1Ks0gkkWk2Eexd4pYZHdwXwP47BtxlZQTa6GRKGPaRYY0+BZQZgb8pE\\n4zw9247F5y2lpH4frnVkZU1Ll1zJxqCldnrY+bUCgYAfr98C+AQobRoYrrr1ox2w\\ntzcVsOfJCgTAjFP5XmT2Ks7CSJAc5GL9sMCc0TcWBbYUYZkyK1fOAjtFK9UEma7J\\nni5iNSDIeJ+/bPUDeRspxHGgVHtXwEd7Cg8AGz1WJj+ETxmHUQdG124m4OjMxFnZ\\nI/R7ue0AZnAN5ggfC+sIuQKBgCfn0c3wjXBWIkNTYkqCrWa2r7dM9n/esTUbEVFl\\nHW28yfYTBpJFWU7lXOihHjZoyRYLbIdM08qDE1aQEvaaVSLCsJM1+BfYkSVDN/TW\\nK0fXwuhQeTnQTOiTqRqnEDjIaJVnOfCXFNFfJ6Wco5yGMReB2Pwc6PpJVHzWMwcP\\nZghJAoGBAKOscoFpm2qt25IfWJlIlLEC3IUNCNLAG2dQSndB+S1BnfNEPPnSWxOg\\ncVhmamk/w1L67RtzwJ69S6sTECwfnHDlOBLJwCTtVzGTfHZQ1QBctNnyZ1sHUetd\\nwX5QuEO1vsI/T7jpozg0PGr+5BE5r1kr6VjvPBe+WOhO/4X1wUFt\\n-----END PRIVATE KEY-----\",\"status\":\"Success\"}" 
     } 
    } 
} 
+0

http://jsbin.com/lipaxuhidi/edit?html,js,outputはわずか100%陽性であることを - あなたはあなたが投稿した秘密鍵を使用していませんか? – jhpratt

+1

もちろんです..秘密鍵は、すべてのフィールドにa、a、a、a、aの情報で生成されます... – Jerry

答えて

2

は、なぜあなたはフォーマットされたJSONとしてあなたのPFXファイルを格納していますか?ちょうどJSON.stringifyを取り除いてプレーンテキストとして出力してください。あなたが渡しているものが基本的な文字列であるのを見てください。 stringifyが行うことは、引用符で囲み、改行をエンコードすることだけです。ここで

var dataStr = "data:text/plain;charset=utf-8," + exportObj; 

Image of the private key stored as a PFX

それのJSbinが正しく動作している:

+1

それは働きます..ありがとう..私はプレーンテキストファイルタイプを知らないそれに応じて\ nが処理されます。応答はすべての行で\ nです。 – Jerry

関連する問題