{"id":138,"date":"2021-01-13T12:59:51","date_gmt":"2021-01-13T04:59:51","guid":{"rendered":"https:\/\/www.ssle.cn\/help\/?p=138"},"modified":"2022-01-13T13:00:59","modified_gmt":"2022-01-13T05:00:59","slug":"golang-ying-yong-shi-yong-ssl-zheng-shu","status":"publish","type":"post","link":"https:\/\/ssle.cn\/help\/golang-ying-yong-shi-yong-ssl-zheng-shu\/","title":{"rendered":"Golang \u5e94\u7528\u4f7f\u7528SSL\u8bc1\u4e66"},"content":{"rendered":"<p>\u4e00\u3001\u767b\u5f55\u4f1a\u5458\u4e2d\u5fc3\uff0c\u4e0b\u8f7dNginx\u683c\u5f0f\u7684SSL\u8bc1\u4e66\u3002<\/p>\n<pre class=\" -none language-language\"><code class=\"-none language-language\">yourdomain.com.crt\r\nyourdomain.com.key<\/code><\/pre>\n<p>\u4e8c\u3001Golang\u4f7f\u7528SSL\u8bc1\u4e66<\/p>\n<p>\u5982\u679c\u4f7f\u7528golang\u505a\u524d\u7aefweb\u670d\u52a1\uff0c\u53ef\u4ee5\u53c2\u8003\u4e0b\u9762\u793a\u4f8b\u4ee3\u7801.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\" language-go\"><code class=\" language-go\"><span class=\"token keyword\">package<\/span> main\r\n\r\n<span class=\"token keyword\">import<\/span> <span class=\"token punctuation\">(<\/span>\r\n\t<span class=\"token string\">\"crypto\/tls\"<\/span>\r\n\t<span class=\"token string\">\"log\"<\/span>\r\n\t<span class=\"token string\">\"net\/http\"<\/span>\r\n<span class=\"token punctuation\">)<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n\tserver <span class=\"token operator\">:=<\/span> http<span class=\"token punctuation\">.<\/span><span class=\"token function\">NewServeMux<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\r\n\tserver<span class=\"token punctuation\">.<\/span><span class=\"token function\">HandleFunc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\/\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">func<\/span><span class=\"token punctuation\">(<\/span>w http<span class=\"token punctuation\">.<\/span>ResponseWriter<span class=\"token punctuation\">,<\/span> req <span class=\"token operator\">*<\/span>http<span class=\"token punctuation\">.<\/span>Request<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n\t\tw<span class=\"token punctuation\">.<\/span><span class=\"token function\">Write<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token function\">byte<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Hello World!! \\n\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\r\n\t<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span>\r\n\tcfg <span class=\"token operator\">:=<\/span> <span class=\"token operator\">&amp;<\/span>tls<span class=\"token punctuation\">.<\/span>Config<span class=\"token punctuation\">{<\/span>\r\n\t\tMinVersion<span class=\"token punctuation\">:<\/span>               tls<span class=\"token punctuation\">.<\/span>VersionTLS12<span class=\"token punctuation\">,<\/span>\r\n\t\tCurvePreferences<span class=\"token punctuation\">:<\/span>         <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span>tls<span class=\"token punctuation\">.<\/span>CurveID<span class=\"token punctuation\">{<\/span>tls<span class=\"token punctuation\">.<\/span>CurveP521<span class=\"token punctuation\">,<\/span> tls<span class=\"token punctuation\">.<\/span>CurveP384<span class=\"token punctuation\">,<\/span> tls<span class=\"token punctuation\">.<\/span>CurveP256<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span>\r\n\t\tPreferServerCipherSuites<span class=\"token punctuation\">:<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">,<\/span>\r\n\t\tCipherSuites<span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">uint16<\/span><span class=\"token punctuation\">{<\/span>\r\n\t\t\ttls<span class=\"token punctuation\">.<\/span>TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384<span class=\"token punctuation\">,<\/span>\r\n\t\t\ttls<span class=\"token punctuation\">.<\/span>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA<span class=\"token punctuation\">,<\/span>\r\n\t\t\ttls<span class=\"token punctuation\">.<\/span>TLS_RSA_WITH_AES_256_GCM_SHA384<span class=\"token punctuation\">,<\/span>\r\n\t\t\ttls<span class=\"token punctuation\">.<\/span>TLS_RSA_WITH_AES_256_CBC_SHA<span class=\"token punctuation\">,<\/span>\r\n\t\t<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span>\r\n\t<span class=\"token punctuation\">}<\/span>\r\n\tsrv <span class=\"token operator\">:=<\/span> <span class=\"token operator\">&amp;<\/span>http<span class=\"token punctuation\">.<\/span>Server<span class=\"token punctuation\">{<\/span>\r\n\t\tAddr<span class=\"token punctuation\">:<\/span>         <span class=\"token string\">\"127.0.0.1:443\"<\/span><span class=\"token punctuation\">,<\/span>\r\n\t\tHandler<span class=\"token punctuation\">:<\/span>      server<span class=\"token punctuation\">,<\/span>\r\n\t\tTLSConfig<span class=\"token punctuation\">:<\/span>    cfg<span class=\"token punctuation\">,<\/span>\r\n\t\tTLSNextProto<span class=\"token punctuation\">:<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">map<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">string<\/span><span class=\"token punctuation\">]<\/span><span class=\"token keyword\">func<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">*<\/span>http<span class=\"token punctuation\">.<\/span>Server<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">*<\/span>tls<span class=\"token punctuation\">.<\/span>Conn<span class=\"token punctuation\">,<\/span> http<span class=\"token punctuation\">.<\/span>Handler<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\r\n\t<span class=\"token punctuation\">}<\/span>\r\n\tsrv<span class=\"token punctuation\">.<\/span><span class=\"token function\">ListenAndServeTLS<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"yourdomain.com.crt\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"yourdomain.com.key\"<\/span><span class=\"token punctuation\">)<\/span>\r\n<span class=\"token punctuation\">}<\/span> <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u767b\u5f55\u4f1a\u5458\u4e2d\u5fc3\uff0c\u4e0b\u8f7dNginx\u683c\u5f0f\u7684SSL\u8bc1\u4e66\u3002 yourdomain.com.crt yourdomain.com.key \u4e8c\u3001Golang\u4f7f\u7528SSL\u8bc1\u4e66 \u5982\u679c\u4f7f\u7528golang\u505a\u524d\u7aefweb\u670d\u52a1\uff0c\u53ef\u4ee5\u53c2\u8003\u4e0b\u9762\u793a\u4f8b\u4ee3\u7801. &nbsp; package main import ( &#8220;crypto\/ &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"class_list":["post-138","post","type-post","status-publish","format-standard","hentry","category-ssl-install"],"_links":{"self":[{"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/posts\/138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/comments?post=138"}],"version-history":[{"count":0,"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/posts\/138\/revisions"}],"wp:attachment":[{"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/media?parent=138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/categories?post=138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ssle.cn\/help\/wp-json\/wp\/v2\/tags?post=138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}