{"id":20182,"date":"2026-04-23T11:21:56","date_gmt":"2026-04-23T03:21:56","guid":{"rendered":"https:\/\/blog.ywdevops.cn\/?p=20182"},"modified":"2026-04-23T13:58:38","modified_gmt":"2026-04-23T05:58:38","slug":"mkcert","status":"publish","type":"post","link":"https:\/\/blog.ywdevops.cn\/index.php\/2026\/04\/23\/mkcert\/","title":{"rendered":"mkcert\u5185\u7f51\u8bc1\u4e66\u7ba1\u7406\u5de5\u5177"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>mkcert<\/strong> \u662f\u4e00\u6b3e<strong>\u96f6\u914d\u7f6e\u3001\u5f00\u6e90<\/strong>\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u4e13\u4e3a<strong>\u672c\u5730\u5f00\u53d1\u73af\u5883<\/strong>\u8bbe\u8ba1\uff0c\u6838\u5fc3\u4f5c\u7528\u662f\u4e00\u952e\u751f\u6210<strong>\u53d7\u7cfb\u7edf \/ \u6d4f\u89c8\u5668\u4fe1\u4efb<\/strong>\u7684 HTTPS\/SSL\/TLS \u8bc1\u4e66\uff0c\u5f7b\u5e95\u89e3\u51b3\u672c\u5730\u5f00\u53d1\u65f6\u7684 \u201c\u4e0d\u5b89\u5168\u201d \u8b66\u544a\u95ee\u9898<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6838\u5fc3\u539f\u7406\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u81ea\u52a8\u521b\u5efa\u4e00\u4e2a<strong>\u672c\u5730\u6839\u8bc1\u4e66\u9881\u53d1\u673a\u6784\uff08CA\uff09<\/strong><\/li>\n\n\n\n<li>\u5c06\u8fd9\u4e2a\u6839\u8bc1\u4e66<strong>\u81ea\u52a8\u5b89\u88c5<\/strong>\u5230\u4f60\u7684\u7cfb\u7edf\uff08macOS\/Linux\/Windows\uff09\u548c\u4e3b\u6d41\u6d4f\u89c8\u5668\uff08Chrome\/Firefox\uff09\u7684<strong>\u4fe1\u4efb\u5b58\u50a8<\/strong>\u4e2d<\/li>\n\n\n\n<li>\u7528\u8fd9\u4e2a\u672c\u5730 CA\uff0c\u4e3a <code>localhost<\/code>\u3001<code>127.0.0.1<\/code>\u3001\u81ea\u5b9a\u4e49\u57df\u540d\uff08\u5982 <code>myapp.test<\/code>\uff09\u6216\u5185\u7f51 IP \u7b7e\u53d1\u8bc1\u4e66<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3b\u8981\u7279\u70b9\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u96f6\u914d\u7f6e<\/strong>\uff1a\u65e0\u9700\u624b\u52a8\u751f\u6210 CSR\u3001\u914d\u7f6e CA\u3001\u5904\u7406\u4fe1\u4efb\u94fe\uff0c\u4e00\u6761\u547d\u4ee4\u641e\u5b9a<\/li>\n\n\n\n<li><strong>\u5168\u5e73\u53f0<\/strong>\uff1a\u652f\u6301 macOS\u3001Linux\u3001Windows<\/li>\n\n\n\n<li><strong>\u7075\u6d3b\u7b7e\u53d1<\/strong>\uff1a\u652f\u6301\u5355\u57df\u540d\u3001\u591a\u57df\u540d\u3001\u901a\u914d\u7b26\uff08<code>*.example.com<\/code>\uff09\u3001IP \u5730\u5740<\/li>\n\n\n\n<li><strong>\u5b89\u5168<\/strong>\uff1a\u751f\u6210\u7684\u8bc1\u4e66\u5728\u672c\u5730\u73af\u5883\u88ab\u5b8c\u5168\u4fe1\u4efb\uff0c\u6d4f\u89c8\u5668\u663e\u793a \u201c\u5b89\u5168\u201d \u9501\u6807<\/li>\n\n\n\n<li><strong>\u4ec5\u9650\u5f00\u53d1<\/strong>\uff1a<strong>\u7edd\u5bf9\u4e0d\u80fd\u7528\u4e8e\u751f\u4ea7\u73af\u5883<\/strong>\uff0c\u4ec5\u7528\u4e8e\u672c\u5730\u5f00\u53d1\u4e0e\u6d4b\u8bd5<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>IP<\/td><td>192.168.51.246(mkcert\u5b89\u88c5\u7684\u673a\u5668)<\/td><\/tr><tr><td>\u7cfb\u7edf<\/td><td>Ubuntu<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001\u5b89\u88c5mkcert\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install mkcert<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">2\u3001\u5b89\u88c5\u540e\u6267\u884c\u547d\u4ee4\u521b\u5efa\u672c\u5730CA(\u8bc1\u4e66\u9881\u53d1\u673a\u6784)\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkcert -install <\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"98\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-6.png\" alt=\"\" class=\"wp-image-20186\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-6.png 651w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-6-300x45.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-6-600x90.png 600w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">3\u3001\u67e5\u770bCA\u8bc1\u4e66\u4f4d\u7f6e\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkcert -CAROOT    #CA\u8bc1\u4e66\u4fdd\u5b58\u5728\/root\/.local\/share\/mkcert\u8def\u5f84\u4e0b<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"146\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-5.png\" alt=\"\" class=\"wp-image-20188\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-5.png 649w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-5-300x67.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-5-600x135.png 600w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4\u3001\u7ed9\u672c\u673aIP\u751f\u6210\u8bc1\u4e66\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkcert 192.168.51.246   #\u8bc1\u4e66\u6709\u6548\u671f\u9ed8\u8ba4\u4e3a2\u5e743\u4e2a\u6708<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"214\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-5.png\" alt=\"\" class=\"wp-image-20190\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-5.png 647w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-5-300x99.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-5-600x198.png 600w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u5f53\u671f\u76ee\u5f55\u4e0b\u5df2\u7ecf\u751f\u6210\u4e86\u6b64IP\u7684http\u8bc1\u4e66\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"127\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/5-5.png\" alt=\"\" class=\"wp-image-20194\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/5-5.png 652w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/5-5-300x58.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/5-5-600x117.png 600w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">5\u3001\u5c06\u7b2c\u4e00\u6b65\u751f\u6210\u7684rootCA.pem\u6587\u4ef6\u4e0b\u8f7d\u51fa\u6765\uff0c\u5bfc\u5165windows\u672c\u5730\u8bc1\u4e66\u4fe1\u4efb\u673a\u6784\u4e2d\uff0c\u8fd9\u6837\u624d\u4e0d\u4f1a\u63d0\u793a\u4e0d\u5b89\u5168\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u8fd0\u884c\u7a97\u53e3\uff0c\u8f93\u5165certlm.msc\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"274\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/1-7.png\" alt=\"\" class=\"wp-image-20196\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/1-7.png 649w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/1-7-300x127.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/1-7-600x253.png 600w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u53d7\u4fe1\u4efb\u7684\u6839\u8bc1\u4e66\u9881\u53d1\u673a\u6784\u4e0b\uff0c\u70b9\u51fb\u5bfc\u5165\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"644\" height=\"290\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-7.png\" alt=\"\" class=\"wp-image-20197\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-7.png 644w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-7-300x135.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/2-7-600x270.png 600w\" sizes=\"auto, (max-width: 644px) 100vw, 644px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bfc\u5165\u5b8c\u6210\u518d\u6b21\u8bbf\u95ee\u5c31\u662f\u5b89\u5168\u7684\u4e86\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"274\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-6.png\" alt=\"\" class=\"wp-image-20198\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-6.png 642w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-6-300x128.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/3-6-600x256.png 600w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"444\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-6.png\" alt=\"\" class=\"wp-image-20199\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-6.png 647w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-6-300x206.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/04\/4-6-600x412.png 600w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\uff1a\u6bcf\u4e2a\u8bbf\u95ee\u7684\u7ec8\u7aef\u90fd\u9700\u8981\u5bfc\u5165CA\u8bc1\u4e66\u624d\u884c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5176\u4f59\u547d\u4ee4\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ed9 <a rel=\"noreferrer noopener\" href=\"https:\/\/localhost\" target=\"_blank\">localhost<\/a> \/ 127.0.0.1 \u751f\u6210\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkcert localhost 127.0.0.1 ::1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ed9\u81ea\u5b9a\u4e49\u672c\u5730\u57df\u540d\uff08\u5982 <a rel=\"noreferrer noopener\" href=\"https:\/\/test.com\" target=\"_blank\">test.com<\/a>\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkcert test.com www.test.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u914d\u7b26\u57df\u540d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkcert \"*.com.cn\"<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>mkcert \u662f\u4e00\u6b3e\u96f6\u914d\u7f6e\u3001\u5f00\u6e90\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u4e13\u4e3a\u672c\u5730\u5f00\u53d1\u73af\u5883\u8bbe\u8ba1\uff0c\u6838\u5fc3\u4f5c\u7528\u662f\u4e00\u952e\u751f\u6210\u53d7\u7cfb\u7edf \/ \u6d4f\u89c8\u5668\u4fe1\u4efb\u7684 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":20183,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-20182","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/20182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/comments?post=20182"}],"version-history":[{"count":10,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/20182\/revisions"}],"predecessor-version":[{"id":20201,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/20182\/revisions\/20201"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media\/20183"}],"wp:attachment":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media?parent=20182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/categories?post=20182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/tags?post=20182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}