{"componentChunkName":"component---node-modules-arcblock-gatsby-theme-docs-src-templates-documentation-js","path":"/zh/router/certificates-for-localhost","result":{"data":{"file":{"changeTime":"5 minutes ago","childMarkdownRemark":{"frontmatter":{"author":"zhenqiang","category":"","date":null,"description":"localhost 证书","draft":null,"keywords":"abtnode, 路由, 证书","language":"zh","layout":"documentation","path":"/zh/router/certificates-for-localhost","tags":["abtnode"],"title":"localhost 证书"},"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"为了方便本地开发测试，我们可以生成一个只用于本地的证书。除了本机，该证书不会被其他任何人信任，对于开发来说已经够用了。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"使用-openssl-生成-localhost-证书","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BD%BF%E7%94%A8-openssl-%E7%94%9F%E6%88%90-localhost-%E8%AF%81%E4%B9%A6","ariaLabel":"使用 openssl 生成 localhost 证书 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"使用 openssl 生成 localhost 证书"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们使用 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"openssl"}]},{"type":"text","value":" 生成证书，命令如下："}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"],"req":"","-x509":"","-out":"","localhost.crt":"","-keyout":"","localhost.key":"","\\":""},"children":[{"type":"text","value":"openssl req -x509 -out localhost.crt -keyout localhost.key \\\n  -newkey rsa:2048 -nodes -sha256 \\\n  -subj '/CN=localhost' -extensions EXT -config <( \\\n   printf \"[dn]\\nCN=localhost\\n[req]\\ndistinguished_name = dn\\n[EXT]\\nsubjectAltName=DNS:localhost\\nkeyUsage=digitalSignature\\nextendedKeyUsage=serverAuth\")\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"测试证书","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E6%B5%8B%E8%AF%95%E8%AF%81%E4%B9%A6","ariaLabel":"测试证书 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"测试证书"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"生成好了证书后，我们可以将证书放在 Nginx 中测试一下，测试配置如下："}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"将 <your directory> 替换为真实的目录"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-nginx"],"auto;":""},"children":[{"type":"text","value":"worker_processes auto;\n\nevents {}\n\nhttp {\n    server {\n        listen              443 ssl;\n        server_name         localhost;\n\n        ssl_certificate     <your directory>/localhost.crt;\n        ssl_certificate_key <your directory>/localhost.key;\n\n        root <your directory>/localhost-certificates;\n\n        location / {\n          index index.html;\n        }\n    }\n}\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在浏览器中输入 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"https://localhost"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 835px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 72%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAABjklEQVQ4y61Sy07CUBDlK1SIiSgkkMCiwYUJiT8jRdfSVhJXhLhz6c5/8B80caFf4EoTN/JqC/QBfR+nt2AKKVITb3Iyk8ncM2fOvRmufIRipYha7QT1+ik47hilcgXVKodCsYTdvRx2drMbkT8s4CBfQDa3z2JGFNuQCIIgQRSv0BJEXLYESFIbzeYFGnwTPH+eiLMGj06ni273ht0PkcE/n4zn+3AtC5PnRzizGVzPg+u6K/ColhZMoaeMMLy7ha8qiVODINiKZR8jtGwbqqZDlmUMBgOoqgpZUdDr9aFpWqpVl8SMcD630O/3iWzISMIYEo5GMhRFxYysmBKxOh7DMEzohgFd1yk3WG6Y5qpC23YwInUyXV6qNM0ZfGrwyWMv5muUe7E8iiuE4SWb1g7hOC7BwZweKqynPT8rLw3d1vinR0nTuD6AbUbR8yOw2iaFcaKkAetD4rWFhwGchelJqpIsCM/bl4OXdxuvHzb0eeR39LHplcbjCf05/Vd160rvnwxcP0wZPpXopb8BK1z38G5RddMAAAAASUVORK5CYII='); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"test failed","title":"test failed","src":"/abtnode/static/bdd08c103b766206dae38183a1527a85/e6414/test-failed.png","srcSet":["/abtnode/static/bdd08c103b766206dae38183a1527a85/41b2e/test-failed.png 250w","/abtnode/static/bdd08c103b766206dae38183a1527a85/36a81/test-failed.png 500w","/abtnode/static/bdd08c103b766206dae38183a1527a85/e6414/test-failed.png 835w"],"sizes":["(max-width:","835px)","100vw,","835px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"我们可以看到，在 Chrome 中会提示证书有问题（在 Safari 中会提示网站无法访问），因为这个时候证书还不被系统信任，我们需要通过设置让系统信任。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"信任证书-mac-os","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E4%BF%A1%E4%BB%BB%E8%AF%81%E4%B9%A6-mac-os","ariaLabel":"信任证书 mac os permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"信任证书 (Mac OS)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"证书生成后还无法直接使用；需要在系统中"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"信任"}]},{"type":"text","value":"刚生成的证书，我们以 Mac OS 为例，展示一下如何在系统中"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"信任"}]},{"type":"text","value":"证书。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"生成好的证书在当前目录下，我们在文件管理器(Finder)中双击"},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"localhost.crt"}]},{"type":"text","value":"文件："}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 770px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 56.8%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAABcUlEQVQoz63SYU/aUBTG8X7/b7OWQRWBjhYobW9RRsIcAlGkMGC0HVJtq/vvQqIjJmZh+uKXk5wXzz3n5CqTYY/+qM/VYMD4qo/TMpndjllMR9xORozGA4Lr79KA62Gf5eyGcDlls56/iH/O+LX+wWo+QWm2PVxXIPxzPtW6lBrfsHpzdC+g6Ew5ETN0Md8rNIdo5iXVTsBpZ0HRDdDsG2rdBSfuhPpFgFKpGVSNOqbVotpdUeuFqHaAKmK0iwT1/A5N2tWiH1LyV/uqdu5eFPyIglhT+RqhGFaTL2YDq9EkTWIgh9+prNk/5Af+9pXWqU65fIYnOqzDiDTLuX9I95JX7g+81VeEfUZJ12k7HlEUkec5aZrK4Ox4qZzwc8NAK+kI4RPuAh/fESgpVUNQrhh4nviYQMMwUQtFnIOVH3aB/yXb/UMHo25h2w5xHPP49EQmX8pk8FGeJ2zLVV15P8/zWS5XbLdbNpvN0ZIk2Qf+ATFKNHPrr3VMAAAAAElFTkSuQmCC'); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"cert-list","title":"cert-list","src":"/abtnode/static/24ea1f6061b10f941ed73454204c766f/e926f/cert-list.png","srcSet":["/abtnode/static/24ea1f6061b10f941ed73454204c766f/41b2e/cert-list.png 250w","/abtnode/static/24ea1f6061b10f941ed73454204c766f/36a81/cert-list.png 500w","/abtnode/static/24ea1f6061b10f941ed73454204c766f/e926f/cert-list.png 770w"],"sizes":["(max-width:","770px)","100vw,","770px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"双击后，会出现 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"Keychains Access"}]},{"type":"text","value":" 的设置页面，然后双击 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"localhost"}]},{"type":"text","value":" 证书："}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 877px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 63.2%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbklEQVQ4y6WS20rDQBCG9/3fQNELURSkz2CVQsHDVaHSNuk5zblJts359LsZ29hK9aIJfOzMZPZn2PlZf9DDaCRhMpliMZegKUOMxzIkWYau64RpmjWGYdSnbdtwXRee5xFVzj77fUiSBFXVYK1GsJbvUJZTTGdzONTMEcUxoig6Iha1NE1rkt3J5GGfLhVlgWRjw1M+EPsG/A0Hdyz43EXocyLYcqRxKAgA5Dj1Mc9dIwgCSlaGC8UKsLRCzAwfczPAXJwzfUv5WHGwNH0sRF1W1ljoHKotevQNBjOTetmh+ktPxWPXwE3HxcXTGpftPQ7ltx0bD93v+E7ErVcHrTcP96J23TZx9eyAFUWBsiwJoBBk/5D/Ef/kRxPGSSoWkBDhCQ7/Rb/Y9zDOOa2+2lq1zSRJGsEqz1W+yrKMRJOdBc6FqepCCFr0hiTadMKRMLWmaeT0MAxrk549YTVVJZLneeP3owkPt0zigqwBX7t25QwBwcq7AAAAAElFTkSuQmCC'); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"keychains-localhost","title":"keychains-localhost","src":"/abtnode/static/d36cb0561d07805334ba1e4357269b93/fbb82/keychains-localhost.png","srcSet":["/abtnode/static/d36cb0561d07805334ba1e4357269b93/41b2e/keychains-localhost.png 250w","/abtnode/static/d36cb0561d07805334ba1e4357269b93/36a81/keychains-localhost.png 500w","/abtnode/static/d36cb0561d07805334ba1e4357269b93/fbb82/keychains-localhost.png 877w"],"sizes":["(max-width:","877px)","100vw,","877px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"双击证书后，在 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"Trust"}]},{"type":"text","value":" 的设置项中，将 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"When using this certificate"}]},{"type":"text","value":" 设置为 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"Always Trust"}]},{"type":"text","value":":"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 513px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 84.39999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACFklEQVQ4y41U2Y7aQBD0/39JpLyslMfkJS+rJMvCogSEOXyCMTY2YPABPipUL0aAIVlLrZ4Z2jVV3WUU/+UZb6NveNX7cKwZbNuCZVnQdR2GYWAymaDVaqHdbsua55qmSb4NnivxaoCN/wdZpGHumBgMVDiOg6IokOe55Kqq8JEnDEIogf4LU0OFZ3+HY6rQDTI0MZ/PMZ1OMZvNkCQJdrsd4jiWvN1uJdfnjP1+jzAkoPEbjvoMT/uKKHSxXC7h+76wXCwWAux5nqwZsnYdqSPwer3GZrNBmqYIggBKfpTEojjeC23Ku5V4u99mQF402yAMcSpOkhir1eoqeDvlkBkZUTJ7+mNSItwkx5vKKwLvgCcGfIEHpE0wrmsQ7ikrO8oi4KtRIsvRUMQ6hZuyLOVFDoCjH4/HGA6H6Pf7Akr72LYtjA+HAz6/5NimAncFyMEoBGMP66mORiPxlGma4jsypS85pCiKwJ5/eSuwy5qAvEwkX3qO/aoNzUxAgvMyymbdU7uQwdwFvGda13XPzqdktoIKaJP/At5ag0Op2RGUgOzfWfIR8NPPAlH6AJA9pFRmPpRFmZeGZSZYlmVSq/klDsWJyIUyAWQRb6dMTpp7snj0vLOpuDizq+Oqh/zcer0eVFWVqdZM6z+HyyjLJlhjKNyQIRtPmdzTV/Xv1R1G/wQkm263i06nI8ZmDzmgewwfBQn8BU6EGDGvXi1lAAAAAElFTkSuQmCC'); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"keychains-localhost-trust","title":"keychains-localhost-trust","src":"/abtnode/static/464531a5394094ef7dc18d8f64d7cb65/fb73d/keychains-localhost-trust.png","srcSet":["/abtnode/static/464531a5394094ef7dc18d8f64d7cb65/41b2e/keychains-localhost-trust.png 250w","/abtnode/static/464531a5394094ef7dc18d8f64d7cb65/36a81/keychains-localhost-trust.png 500w","/abtnode/static/464531a5394094ef7dc18d8f64d7cb65/fb73d/keychains-localhost-trust.png 513w"],"sizes":["(max-width:","513px)","100vw,","513px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后点击左上角的 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"关闭"}]},{"type":"text","value":" 按钮，在窗口关闭前，系统会提示保存设置，输入密码后保存设置："}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 563px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 87.6%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAAAsTAAALEwEAmpwYAAACh0lEQVQ4y5VUa2/aQBD0//8R/QmV8i0KCU1IgKbBBSIw4BfY2IDNww0QHhEwvVl6lLRSlVoa7fl8Nzc7u2ejZXkIni5RdS/h9T1EYYQgCBDHMYbDIQaDASzLQqPRQL/fl/koiiRqcE0YhjI2HMfBMrPxI3GwzlwEYQzf97BarbDb7bDdbvGR5+3tTQ42WlYTE+8ZsV9G4l8rwgie58J1XRU9dDodUTAajZAkiYDv4/EY0+lU4mw2w3w+V0J8Rdh2kSUB+o6JxSzGdrPC6+srlsulRD1eLBaySUedAXE4HLDZbNBut2G02x30ghAd20PYP/qjPdLjPz3jO32mbyTWKZumCUOMT0cYpYl4R09t25ZUCZ56PtdsNtHtdqVgJJ5MJkK4Xq/hKJuMVHmzuLhDVmniuWWh+PCA+/t7FItF8ZGEjCRkJCmJsiwTP+ktU2bqnDfSwRDh5xzM6zuEcYRWqyWbCaZFoxmpqtfriSIWg5FkxH6/F5VUbYzVh2Q6wTAZYaYWcjGrpjexirrC+luq7OG3NE1PhFQphJxIk/T0kZEgASObmSrZQtxAIhaRBTlXeCLMfymgVqsJqtUqHh8fkcvlBFdXVygUCri9vRWUyyWUv37DpwsT36s18ZNekuxEWDHrSNQp9IiKqIDmUoG+TlRJSOrpGA1vrKyYYP7yIu3yjtB2e3K9tF8vahGhjf77OQg0yTmEsGP7p6Wsou43FoCK2V/SFuqA/S/sdr/H5zgqdLonQvYSrxUVkuR/H1piWOou0yf2WqlUQj6fx83NDer1Op4qFWls+uupSvv/gL6Khtc9tgXT1H8YvvO66f/gR8CDaZExTGaS6tGb3TuwWBuF7UehKv4TBc44UBwGe9oAAAAASUVORK5CYII='); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"password","title":"password","src":"/abtnode/static/b1a95b17d369c8f1a976d41e0c513789/e80e2/password.png","srcSet":["/abtnode/static/b1a95b17d369c8f1a976d41e0c513789/41b2e/password.png 250w","/abtnode/static/b1a95b17d369c8f1a976d41e0c513789/36a81/password.png 500w","/abtnode/static/b1a95b17d369c8f1a976d41e0c513789/e80e2/password.png 563w"],"sizes":["(max-width:","563px)","100vw,","563px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"然后在浏览器中重新访问 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"https://localhost"}]},{"type":"text","value":"，这个时候我们可以看到测试网站已经可以正常访问了："}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 835px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 72%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAt0lEQVQ4y+2TywqCQBiF5ynyUpA1EC6EaiWI4cM0DiGmiLQX6aEzLyfHmJBqEdom6MDHYRbzcTY/2ZoU5tqE43hwXa/tHWzbgWVtsKQrKOoUE0V7QVH1DmNBMTcoNH3WNYmiBIIgCBEeI8RxAsY4mM/v/YY988H5AX5LluXI8zPS9NRBmqZBURQoy2vbF4wNqesaQioR76qqBkP6MomI7E/S/0OGCP7CXxaO4SEcu+555VcXiiu7AWO8BEVN2nvaAAAAAElFTkSuQmCC'); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"test-success","title":"test-success","src":"/abtnode/static/6ea1f0e14e256d48d59f4b155d12d204/e6414/test-success.png","srcSet":["/abtnode/static/6ea1f0e14e256d48d59f4b155d12d204/41b2e/test-success.png 250w","/abtnode/static/6ea1f0e14e256d48d59f4b155d12d204/36a81/test-success.png 500w","/abtnode/static/6ea1f0e14e256d48d59f4b155d12d204/e6414/test-success.png 835w"],"sizes":["(max-width:","835px)","100vw,","835px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"完成设置。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"参考","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%8F%82%E8%80%83","ariaLabel":"参考 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"参考"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"[Let's Encrypt] localhost 证书: "},{"type":"element","tagName":"a","properties":{"href":"https://letsencrypt.org/zh-cn/docs/certificates-for-localhost/"},"children":[{"type":"text","value":"https://letsencrypt.org/zh-cn/docs/certificates-for-localhost/"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}}}}},"pageContext":{"site":{"title":"ABT Node","description":"ABT Node Documentation","siteUrl":"https://docs.arcblock.io","logoUrl":"/abtnode/","sidebarWidth":360,"disableI18n":false,"showGetStarted":true,"defaultBanner":"/abtnode/og-banner.png"},"id":"addf1a52-70ec-5046-930c-24c612f14cd9","language":"zh","locale":"zh","languages":[{"value":"en","text":"English"},{"value":"zh","text":"简体中文"}],"headings":[{"value":"使用 openssl 生成 localhost 证书","depth":2},{"value":"测试证书","depth":2},{"value":"信任证书 (Mac OS)","depth":2},{"value":"参考","depth":2}],"navItems":[{"group":"/home/runner/work/abtnode-docs/abtnode-docs/src","title":"ABT Node","priority":999,"link":"/"}],"version":"v0.2.20","official":true,"originalPath":"/zh/router/certificates-for-localhost","sidebarContent":[{"url":null,"title":null,"pages":[{"title":"ABT Node 文档","path":"/zh/"}]},{"url":"/zh/introduction","title":"节点入门","pages":[{"title":"节点功能概览","path":"/zh/introduction/abtnode-overview"},{"title":"如何获取 ABT 节点","path":"/zh/introduction/abtnode-setup"},{"title":"配置并启动 ABT 节点","path":"/zh/introduction/abtnode-access"}]},{"url":"/zh/marketplace","title":"应用市场","pages":[{"title":"查找和安装 Blocklet","path":"/zh/marketplace/find-and-install"},{"title":"升级或降级 Blocklet","path":"/zh/marketplace/upgrade-downgrade"}]},{"url":"/zh/blocklet","title":"应用管理","pages":[{"title":"基本管理操作","path":"/zh/blocklet/basic-operations"},{"title":"环境变量管理","path":"/zh/blocklet/environments"},{"title":"核心 Blocklets","path":"/zh/blocklet/core-blocklets"}]},{"url":"/zh/router","title":"路由管理","pages":[{"title":"什么是路由","path":"/zh/router/what-is-router"},{"title":"路由的基本用法","path":"/zh/router/basic-usage"},{"title":"给站点绑定域名以及启用 SSL","path":"/zh/router/bind-domain-and-ssl"},{"title":"localhost 证书","path":"/zh/router/certificates-for-localhost"}]},{"url":"/zh/deployment","title":"生产环境指南","pages":[{"title":"部署最佳实践","path":"/zh/deployment/best-practice"},{"title":"在 AWS 上部署","path":"/zh/deployment/from-aws-ami"},{"title":"运行在反向代理","path":"/zh/deployment/behind-reverse-proxy"},{"title":"在 Docker 中运行","path":"/zh/deployment/run-in-docker"}]},{"url":"/zh/misc","title":"其他功能","pages":[{"title":"节点配置","path":"/zh/misc/node-settings"},{"title":"成员管理","path":"/zh/misc/member-management"},{"title":"GraphQL 试验台","path":"/zh/misc/graphql-console"}]},{"url":"/zh/developer","title":"开发者指南","pages":[{"title":"配置开发环境","path":"/zh/developer/config-dev-env"},{"title":"ABT 节点 cli 工具","path":"/zh/developer/abtnode-cli"},{"title":"节点配置","path":"/zh/developer/configuration"},{"title":"节点存储目录详解","path":"/zh/developer/storage-structure"},{"title":"Blocklet 规范","path":"/zh/developer/blocklet-spec"},{"title":"创建静态 Blocklets","path":"/zh/developer/static-blocklets"},{"title":"创建 DApp Blocklets","path":"/zh/developer/dapp-blocklets"},{"title":"Blocklet 生命周期钩子","path":"/zh/developer/blocklet-hooks"},{"title":"打包 Blocklet","path":"/zh/developer/bundle-blocklets"},{"title":"发布 Blocklet","path":"/zh/developer/publish-blocklets"},{"title":"Blocklet 仓库","path":"/zh/developer/blocklet-registry"},{"title":"在 Codespaces 中开发 Blocklets","path":"/zh/developer/blocklet-codespaces"},{"title":"为 Blocklet 配置 Auth Service","path":"/zh/developer/auth-service"},{"title":"可组合的 Blocklet","path":"/zh/developer/composable-blocklet"},{"title":"Docker 镜像源列表","path":"/zh/developer/docker-registry"}]}],"communityPath":"https://community.arcblockio.cn","githubUrl":"https://github.com/ArcBlock/abtnode-docs/tree/master/src/router/certificates-for-localhost/index.zh.md"}},"staticQueryHashes":["1358860651","1619896071","1812186216","2194038815"]}