Date: Thu, 28 Mar 2024 20:57:26 +0800 (CST) Message-ID: <1615443259.4327.1711630646449@localhost.localdomain> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_4326_1434981748.1711630646449" ------=_Part_4326_1434981748.1711630646449 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
=E5=BB=BA=E7=AB=8BHTTPS
=E6=9C=8D=E5=8A=A1=E9=9D=9E=E5=B8=B8=
=E7=AE=80=E5=8D=95=EF=BC=8C=E4=BD=BF=E7=94=A8=E6=A1=86=E6=9E=B6WebServer=E6=
=8F=90=E4=BE=9B=E7=9A=84EnableHTTPS(certFile, keyFile string) error=
code>=E6=96=B9=E6=B3=95=E5=8D=B3=E5=8F=AF=E3=80=82=E5=BE=88=E6=98=BE=E7=84=
=B6=EF=BC=8C=E8=AF=A5=E6=96=B9=E6=B3=95=E4=B8=AD=E9=9C=80=E8=A6=81=E6=8F=90=
=E4=BE=9B=E4=B8=A4=E4=B8=AA=E5=8F=82=E6=95=B0=EF=BC=8C=E5=8D=B3=E4=B8=A4=E4=
=B8=AA=E7=94=A8=E4=BA=8E
HTTPS
=E9=9D=9E=E5=AF=B9=E7=A7=B0=E5=8A=
=A0=E5=AF=86=E7=9A=84=E8=AF=81=E4=B9=A6=E6=96=87=E4=BB=B6=E4=BB=A5=E5=8F=8A=
=E5=AF=B9=E5=BA=94=E7=9A=84=E7=A7=98=E9=92=A5=E6=96=87=E4=BB=B6=E3=80=82
=E5=9C=A8=E6=9C=AC=E5=9C=B0=E6=BC=94=E7=A4=BA=E7=9A=84=E9=9C=80=E8=A6=81=
=EF=BC=8C=E6=88=91=E4=BB=AC=E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8openss=
l
=E5=91=BD=E4=BB=A4=E7=94=9F=E6=88=90=E6=9C=AC=E5=9C=B0=E7=94=A8=E4=
=BA=8E=E6=B5=8B=E8=AF=95=E7=9A=84=E8=AF=81=E4=B9=A6=E5=92=8C=E5=AF=B9=E5=BA=
=94=E7=9A=84=E7=A7=98=E9=92=A5=E6=96=87=E4=BB=B6=E3=80=82=E5=91=BD=E4=BB=A4=
=E5=A6=82=E4=B8=8B=EF=BC=9A
RSA
=E7=AE=97=
=E6=B3=95=E7=94=9F=E6=88=90=E7=A7=98=E9=92=A5=E6=96=87=E4=BB=B6openssl genrsa -out server.key 2048
=E6=AD=
=A4=E5=A4=96=EF=BC=8C=E6=88=91=E4=BB=AC=E4=B9=9F=E5=8F=AF=E4=BB=A5=E4=BD=BF=
=E7=94=A8ECDSA
=E7=AE=97=E6=B3=95=E6=9D=A5=E7=94=9F=E6=88=90=E7=
=A7=98=E9=92=A5=E6=96=87=E4=BB=B6=EF=BC=9Aop=
enssl ecparam -genkey -name secp384r1 -out server.key
opens=
sl req -new -x509 -key server.key -out server.crt -days 365
openssl rsa -in serv= er.key -out server.key.public
openssl
=E6=94=AF=E6=
=8C=81=E7=9A=84=E7=AE=97=E6=B3=95=E4=BB=A5=E5=8F=8A=E5=91=BD=E4=BB=A4=E5=8F=
=82=E6=95=B0=E6=AF=94=E8=BE=83=E5=A4=9A=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=83=B3=
=E8=A6=81=E6=B7=B1=E5=85=A5=E4=BA=86=E8=A7=A3=E8=AF=B7=E4=BD=BF=E7=94=A8Ubuntu
)=E4=BD=BF=E7=94=A8=E5=91=BD=E4=
=BB=A4=E7=94=9F=E6=88=90=E7=9B=B8=E5=85=B3=E7=A7=98=E9=92=A5=E3=80=81=E5=85=
=AC=E9=92=A5=E3=80=81=E8=AF=81=E4=B9=A6=E6=96=87=E4=BB=B6=E7=9A=84=E6=B5=81=
=E7=A8=8B=E5=A6=82=E4=B8=8B=EF=BC=9A$ open= ssl genrsa -out server.key 2048 Generating RSA private key, 2048 bit long modulus .........................+++ .....................................................................+++ unable to write 'random state' e is 65537 (0x10001) $ openssl req -new -x509 -key server.key -out server.crt -days 365 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:CH State or Province Name (full name) [Some-State]:SiChuan Locality Name (eg, city) []:Chengdu Organization Name (eg, company) [Internet Widgits Pty Ltd]:John.cn Organizational Unit Name (eg, section) []:Dev Common Name (e.g. server FQDN or YOUR name) []:John Email Address []:john@johng.cn $ openssl rsa -in server.key -out server.key.public writing RSA key $ ll total 20 drwxrwxr-x 2 john john 4096 Apr 23 21:26 ./ drwxr-xr-x 90 john john 4096 Apr 23 20:55 ../ -rw-rw-r-- 1 john john 1383 Apr 23 21:26 server.crt -rw-rw-r-- 1 john john 1675 Apr 23 21:25 server.key -rw-rw-r-- 1 john john 1675 Apr 23 21:26 server.key.public
=E5=85=B6=E4=B8=AD=EF=BC=8C=E7=94=9F=E6=88=90=E8=AF=81=E4=B9=A6=E7=9A=84= =E5=91=BD=E4=BB=A4=E6=8F=90=E7=A4=BA=E9=9C=80=E8=A6=81=E5=BD=95=E5=85=A5=E4= =B8=80=E4=BA=9B=E4=BF=A1=E6=81=AF=EF=BC=8C=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E= =A5=E5=9B=9E=E8=BD=A6=E7=95=99=E7=A9=BA=E5=8D=B3=E5=8F=AF=EF=BC=8C=E6=88=91= =E4=BB=AC=E8=BF=99=E9=87=8C=E9=9A=8F=E4=BE=BF=E5=A1=AB=E5=86=99=E4=BA=86=E4= =B8=80=E4=BA=9B=E3=80=82
=E6=A0=B9=E6=8D=AE=E4=BB=A5=E4=B8=8A=E7=94=9F=E6=88=90=E7=9A=84=E7=A7=98=
=E9=92=A5=E5=92=8C=E8=AF=81=E4=B9=A6=E6=96=87=E4=BB=B6=EF=BC=8C=E6=88=91=E4=
=BB=AC=E6=9D=A5=E6=BC=94=E7=A4=BA=E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8=
ghttp.Server
=E5=AE=9E=E7=8E=B0=E4=B8=80=E4=B8=AAHTTPS=E6=9C=8D=E5=8A=
=A1=E3=80=82=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81=E5=A6=82=E4=B8=8B=EF=BC=9A=
package main import ( "github.com/gogf/gf/v2/net/ghttp" ) func main() { s :=3D ghttp.GetServer() s.BindHandler("/", func(r *ghttp.Request){ r.Response.Writeln("=E6=9D=A5=E8=87=AA=E4=BA=8EHTTPS=E7=9A=84=EF=BC= =9A=E5=93=88=E5=96=BD=E4=B8=96=E7=95=8C=EF=BC=81") }) s.EnableHTTPS("/home/john/https/server.crt", "/home/john/https/server.k= ey") s.SetPort(8199) s.Run() }
=E5=8F=AF=E4=BB=A5=E7=9C=8B=E5=88=B0=EF=BC=8C=E6=88=91=E4=BB=AC=E7=9B=B4=
=E6=8E=A5=E5=B0=86=E4=B9=8B=E5=89=8D=E7=94=9F=E6=88=90=E7=9A=84=E8=AF=81=E4=
=B9=A6=E5=92=8C=E7=A7=98=E9=92=A5=E6=96=87=E4=BB=B6=E5=9C=B0=E5=9D=80=E4=BC=
=A0=E9=80=92=E7=BB=99EnableHTTPS
=E5=8D=B3=E5=8F=AF=EF=BC=8C=E9=
=80=9A=E8=BF=87s.SetPort(8199)
=E8=AE=BE=E7=BD=AEHTTPS=E7=9A=84=
=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=8F=A3=EF=BC=8C=E5=BD=93=E7=84=B6=E6=88=91=E4=
=BB=AC=E4=B9=9F=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87s.SetHTTPSPort(819=
9)
=E6=9D=A5=E5=AE=9E=E7=8E=B0=EF=BC=8C=E5=9C=A8=E5=8D=95=E4=B8=80=E6=
=9C=8D=E5=8A=A1=E4=B8=8B=E4=B8=A4=E8=80=85=E6=B2=A1=E6=9C=89=E5=8C=BA=E5=88=
=AB=EF=BC=8C=E5=BD=93WebServer
=E9=9C=80=E8=A6=81=E5=90=8C=E6=
=97=B6=E6=94=AF=E6=8C=81HTTP
=E5=92=8CHTTPS
=E6=9C=
=8D=E5=8A=A1=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E4=B8=A4=E8=80=85=E7=9A=84=
=E4=BD=9C=E7=94=A8=E5=B0=B1=E4=B8=8D=E5=90=8C=E4=BA=86=EF=BC=8C=E8=BF=99=E4=
=B8=AA=E7=89=B9=E6=80=A7=E6=88=91=E4=BB=AC=E4=BC=9A=E5=9C=A8=E5=90=8E=E9=9D=
=A2=E4=BB=8B=E7=BB=8D=E3=80=82=E9=9A=8F=E5=90=8E=E6=88=91=E4=BB=AC=E8=AE=BF=
=E9=97=AE=E9=A1=B5=E9=9D=A2 https://127.0.0.1:8199/ =E6=9D=A5=E7=9C=
=8B=E4=B8=80=E4=B8=8B=E6=95=88=E6=9E=9C=EF=BC=9A
=E5=8F=AF=E4=BB=A5=E7=9C=8B=E5=88=B0=E6=B5=8F=E8=A7=88=E5=99=A8=E6=9C=89= =E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=EF=BC=8C=E4=B8=BB=E8=A6=81=E6=98=AF=E5= =9B=A0=E4=B8=BA=E6=88=91=E4=BB=AC=E7=94=9F=E6=88=90=E7=9A=84=E8=AF=81=E4=B9= =A6=E4=B8=BA=E7=A7=81=E6=9C=89=E7=9A=84=EF=BC=8C=E9=9D=9E=E7=AC=AC=E4=B8=89= =E6=96=B9=E6=8E=88=E4=BF=A1=E4=BC=81=E4=B8=9A=E6=8F=90=E4=BE=9B=E7=9A=84=E3= =80=82=E6=B5=8F=E8=A7=88=E5=99=A8=E5=A4=A7=E5=A4=9A=E4=BC=9A=E8=87=AA=E5=B8= =A6=E4=B8=80=E4=BA=9B=E7=AC=AC=E4=B8=89=E6=96=B9=E6=8E=88=E4=BF=A1=E7=9A=84= HTTPS=E8=AF=81=E4=B9=A6=E6=9C=BA=E6=9E=84=EF=BC=8C=E8=BF=99=E4=BA=9B=E6=9C= =BA=E6=9E=84=E6=8F=90=E4=BE=9B=E7=9A=84HTTPS=E8=AF=81=E4=B9=A6=E8=A2=AB=E6= =B5=8F=E8=A7=88=E5=99=A8=E8=AE=A4=E4=B8=BA=E6=98=AF=E6=9D=83=E5=A8=81=E7=9A= =84=E3=80=81=E5=8F=AF=E4=BF=A1=E7=9A=84=EF=BC=8C=E6=89=8D=E4=B8=8D=E4=BC=9A= =E5=87=BA=E7=8E=B0=E8=AF=A5=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E3=80=82=E4= =B8=80=E8=88=AC=E8=BF=99=E7=A7=8D=E7=AC=AC=E4=B8=89=E6=96=B9=E6=9D=83=E5=A8= =81=E6=9C=BA=E6=9E=84=E6=8E=88=E4=BF=A1=E8=AF=81=E4=B9=A6=E4=BB=B7=E6=A0=BC= =E5=9C=A8=E6=AF=8F=E5=B9=B4=E5=87=A0=E5=8D=83=E5=88=B0=E5=87=A0=E4=B8=87=E4= =BA=BA=E6=B0=91=E5=B8=81=E4=B8=8D=E7=AD=89=EF=BC=8C=E6=84=9F=E5=85=B4=E8=B6= =A3=E7=9A=84=E6=9C=8B=E5=8F=8B=E5=8F=AF=E5=9C=A8=E6=90=9C=E7=B4=A2=E5=BC=95= =E6=93=8E=E4=B8=8A=E4=BA=86=E8=A7=A3=E4=B8=8B=E3=80=82
=E6=88=91=E4=BB=AC=E8=BF=99=E9=87=8C=E7=9B=B4=E6=8E=A5=E7=82=B9=E5=87=BB=
Advanced
=EF=BC=8C=E7=84=B6=E5=90=8E=E7=82=B9=E5=87=BBPro=
ceed to 127.0.0.1 (unsafe)
=EF=BC=8C=E6=9C=80=E7=BB=88=E5=8F=AF=E4=BB=
=A5=E7=9C=8B=E5=88=B0=E9=A1=B5=E9=9D=A2=E8=BE=93=E5=87=BA=E9=A2=84=E6=9C=9F=
=E7=9A=84=E7=BB=93=E6=9E=9C=EF=BC=9A
HTTPS=
code>=E4=B8=8EHTTP
=E6=94=AF=E6=8C=81
=E6=88=91=E4=BB=AC=E7=BB=8F=E5=B8=B8=E4=BC=9A=E9=81=87=E5=88=B0=E9=9C=80=
=E8=A6=81=E9=80=9A=E8=BF=87HTTP=E5=92=8CHTTPS=E6=9D=A5=E6=8F=90=E4=BE=9B=E5=
=90=8C=E4=B8=80=E4=B8=AA=E6=9C=8D=E5=8A=A1=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=
=8C=E5=8D=B3=E9=99=A4=E4=BA=86=E7=AB=AF=E5=8F=A3=E5=92=8C=E8=AE=BF=E9=97=AE=
=E5=8D=8F=E8=AE=AE=E4=B8=8D=E4=B8=80=E6=A0=B7=EF=BC=8C=E5=85=B6=E4=BB=96=E9=
=83=BD=E6=98=AF=E7=9B=B8=E5=90=8C=E7=9A=84=E3=80=82=E5=A6=82=E6=9E=9C=E6=8C=
=89=E7=85=A7=E4=BC=A0=E7=BB=9F=E7=9A=84=E4=BD=BF=E7=94=A8=E5=A4=9AWeb=
Server
=E7=9A=84=E6=96=B9=E5=BC=8F=E6=9D=A5=E8=BF=90=E8=A1=8C=E7=9A=
=84=E8=AF=9D=E4=BC=9A=E6=AF=94=E8=BE=83=E7=B9=81=E7=90=90=EF=BC=8C=E4=B8=BA=
=E8=BD=BB=E6=9D=BE=E5=9C=B0=E8=A7=A3=E5=86=B3=E5=BC=80=E5=8F=91=E8=80=85=E7=
=9A=84=E7=83=A6=E6=81=BC=EF=BC=8Cghttp
=E6=8F=90=E4=BE=9B=E4=BA=
=86=E9=9D=9E=E5=B8=B8=E6=96=B9=E4=BE=BF=E7=9A=84=E7=89=B9=E6=80=A7=EF=BC=9A=
=E6=94=AF=E6=8C=81 =E2=80=9C=E5=90=8C=E4=B8=80=E4=B8=AA=E2=80=9DWebSe=
rver
=E5=90=8C=E6=97=B6=E6=94=AF=E6=8C=81HTTPS
=E5=8F=8A<=
code>HTTP=E8=AE=BF=E9=97=AE=E5=8D=8F=E8=AE=AE=E3=80=82=E6=88=91=E4=
=BB=AC=E5=85=88=E6=9D=A5=E7=9C=8B=E4=B8=80=E4=B8=AA=E4=BE=8B=E5=AD=90=EF=BC=
=9A
package main import ( "github.com/gogf/gf/v2/net/ghttp" ) func main() { s :=3D ghttp.GetServer() s.BindHandler("/", func(r *ghttp.Request){ r.Response.Writeln("=E6=82=A8=E5=8F=AF=E4=BB=A5=E5=90=8C=E6=97=B6= =E9=80=9A=E8=BF=87HTTP=E5=92=8CHTTPS=E6=96=B9=E5=BC=8F=E7=9C=8B=E5=88=B0=E8= =AF=A5=E5=86=85=E5=AE=B9=EF=BC=81") }) s.EnableHTTPS("/home/john/https/server.crt", "/home/john/https/server.k= ey") s.SetHTTPSPort(443) s.SetPort(80) s.Run() }
=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E9=80=9A=E8=BF=87=E6=9C=AC=E5=9C=B0=
=E6=B5=8F=E8=A7=88=E5=99=A8=E8=AE=BF=E9=97=AE=E8=BF=99=E4=B8=A4=E4=B8=AA=E5=
=9C=B0=E5=9D=80 http://127.0.0.1/ =E5=92=8C https://127.0.0.1/ =E9=
=83=BD=E4=BC=9A=E7=9C=8B=E5=88=B0=E5=90=8C=E6=A0=B7=E7=9A=84=E5=86=85=E5=AE=
=B9=EF=BC=88=E9=9C=80=E8=A6=81=E6=B3=A8=E6=84=8F=E7=9A=84=E6=98=AF=EF=BC=8C=
=E7=94=B1=E4=BA=8E=E9=83=A8=E5=88=86=E7=B3=BB=E7=BB=9F=E5=AF=B9=E4=BA=8E=E6=
=9D=83=E9=99=90=E7=9A=84=E9=99=90=E5=88=B6=EF=BC=8CWebServer=E7=BB=91=E5=AE=
=9A80
=E5=92=8C443
=E7=AB=AF=E5=8F=A3=E9=9C=80=E8=
=A6=81root/=E7=AE=A1=E7=90=86=E5=91=98
=E6=9D=83=E9=99=90=EF=BC=
=8C=E5=A6=82=E6=9E=9C=E5=90=AF=E5=8A=A8=E6=8A=A5=E9=94=99=EF=BC=8C=E5=8F=AF=
=E4=BB=A5=E6=9B=B4=E6=94=B9=E7=AB=AF=E5=8F=A3=E5=8F=B7=E5=90=8E=E9=87=8D=E6=
=96=B0=E6=89=A7=E8=A1=8C=E5=8D=B3=E5=8F=AF=EF=BC=89=E3=80=82
=E5=9C=A8=E6=9C=AC=E7=A4=BA=E4=BE=8B=E4=B8=AD=EF=BC=8C=E6=88=91=E4=BB=AC= =E4=BD=BF=E7=94=A8=E4=BA=86=E4=B8=A4=E4=B8=AA=E6=96=B9=E6=B3=95=E6=9D=A5=E5= =BC=80=E5=90=AFHTTPS=E7=89=B9=E6=80=A7=EF=BC=9A
func (s *Server) EnableHTTPS(cer= tFile, keyFile string) error func (s *Server) SetHTTPSPort(port ...int) error
=E4=B8=80=E4=B8=AA=E6=98=AF=E6=B7=BB=E5=8A=A0=E8=AF=81=E4=B9=A6=E5=8F=8A=
=E5=AF=86=E9=92=A5=E6=96=87=E4=BB=B6=EF=BC=8C=E4=B8=80=E4=B8=AA=E6=98=AF=E8=
=AE=BE=E7=BD=AEHTTPS=E5=8D=8F=E8=AE=AE=E7=9A=84=E7=9B=91=E5=90=AC=E7=AB=AF=
=E5=8F=A3=EF=BC=8C=E4=B8=80=E6=97=A6=E8=BF=99=E4=B8=A4=E4=B8=AA=E5=B1=9E=E6=
=80=A7=E8=A2=AB=E8=AE=BE=E7=BD=AE=E4=BA=86=EF=BC=8C=E9=82=A3=E4=B9=88WebSer=
ver=E5=B0=B1=E4=BC=9A=E5=90=AF=E7=94=A8HTTPS=E7=89=B9=E6=80=A7=E3=80=82=E5=
=B9=B6=E4=B8=94=EF=BC=8C=E5=9C=A8=E7=A4=BA=E4=BE=8B=E4=B8=AD=E4=B9=9F=E9=80=
=9A=E8=BF=87SetPort
=E6=96=B9=E6=B3=95=E6=9D=A5=E8=AE=BE=E7=BD=
=AE=E4=BA=86HTTP=E6=9C=8D=E5=8A=A1=E7=9A=84=E7=9B=91=E5=90=AC=E7=AB=AF=E5=
=8F=A3=EF=BC=8C=E5=9B=A0=E6=AD=A4=E8=AF=A5WebServer=E5=B0=86=E4=BC=9A=E5=90=
=8C=E6=97=B6=E7=9B=91=E5=90=AC=E6=8C=87=E5=AE=9A=E7=9A=84HTTPS=E5=92=8CHTTP=
=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=8F=A3=E3=80=82
Let=E2=80=99s Encrypt=E5=85=8D=E8=B4=B9=E8=AF=81=E4=B9=A6
SSL=E5=85=8D=E8=B4=B9=E8=AF=81=E4=B9=A6
=E6=9C=BA=E6=9E=84=
=E6=AF=94=E8=BE=83=E5=A4=9A=EF=BC=8C=E5=A6=82=EF=BC=9A
=E8=85=BE=E8=AE=AF=E4=BA=91DV SSL =E8=AF=81=E4=B9=A6
: https://cloud.tencent.com/product/sslLet=E2=80=99s Encrypt
: https://letsencrypt.org/CloudFlare SSL
: https://www.cloudflare.com/StartSSL
: https://www.startcomca.com/Wosign=E6=B2=83=E9=80=9ASSL
:&nbs=
p; https://www.wosign.com/<=
/li>
loovit.net AlphaSSL
: https://www.lowendtalk.com/entry/register?Target=3Ddis=
cussion%2Fcomment%2F2306096=E4=BB=A5=E4=B8=8B=E4=BB=A5Let's Encrypt
=E4=B8=BA=E4=BE=8B=
=EF=BC=8C=E4=BB=8B=E7=BB=8D=E5=A6=82=E4=BD=95=E7=94=B3=E8=AF=B7=E3=80=81=E4=
=BD=BF=E7=94=A8=E3=80=81=E7=BB=AD=E6=9C=9F=E5=85=8D=E8=B4=B9=E8=AF=81=E4=B9=
=A6=E3=80=82
Let=E2=80=99s Encrypt
=E5=AE=98=E7=BD=91=E5=9C=B0=E5=9D=80=
=EF=BC=9Ahttps://letsencrypt.org/=
=E4=BB=A5=E4=B8=8B=E4=BB=A5Ubuntu
=E7=B3=BB=E7=BB=9F=E4=B8=
=BA=E4=BE=8B=EF=BC=8C=E5=A6=82=E4=BD=95=E7=94=B3=E8=AF=B7Let's Encryp=
t
=E5=85=8D=E8=B4=B9=E8=AF=81=E4=B9=A6=E5=8F=8A=E5=9C=A8GoFrame=
=E6=A1=86=E6=9E=B6=E4=B8=8B=E5=AF=B9=E8=AF=81=E4=B9=A6=E7=9A=84=E4=
=BD=BF=E7=94=A8=E3=80=82
=
Certbot
Certbot
=E5=AE=98=E7=BD=91=E5=9C=B0=E5=9D=80=EF=BC=9Ahttp=
s://certbot.eff.org/
=E7=94=B3=E8=AF=B7Let=E2=80=99s Encrypt
=E5=85=8D=E8=B4=B9=
=E8=AF=81=E4=B9=A6=E9=9C=80=E8=A6=81=E4=BD=BF=E7=94=A8=E5=88=B0certbo=
t
=E5=B7=A5=E5=85=B7=EF=BC=9A
sudo a= pt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot
=E4=BD=BF=E7=94=A8=E4=BB=A5=E4=B8=8B=E5=91=BD=E4=BB=A4=EF=BC=9A
certbo= t certonly --standalone -d =E7=94=B3=E8=AF=B7=E5=9F=9F=E5=90=8D --staple-oc= sp -m =E9=82=AE=E7=AE=B1=E5=9C=B0=E5=9D=80 --agree-tos
=E4=BE=8B=E5=A6=82=EF=BC=9A
root@i= p-172-31-41-204:~# certbot certonly --standalone -d goframe.org --staple-oc= sp -m john@goframe.org --agree-tos Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org Obtaining a new certificate Performing the following challenges: http-01 challenge for goframe.org Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/goframe.org/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/goframe.org/privkey.pem Your cert will expire on 2019-01-25. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
=E9=BB=98=E8=AE=A4=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E8=AF=81=E4=B9=A6=
=E4=BC=9A=E8=A2=AB=E5=AE=89=E8=A3=85=E5=88=B0/etc/letsencrypt/
=
=EF=BC=8C=E8=AF=81=E4=B9=A6=E5=92=8C=E7=A7=81=E9=92=A5=E6=96=87=E4=BB=B6=E5=
=88=86=E5=88=AB=E4=B8=BA=EF=BC=9A
/etc/l= etsencrypt/live/goframe.org/fullchain.pem /etc/letsencrypt/live/goframe.org/privkey.pem
package main import ( "github.com/gogf/gf/v2/net/ghttp" ) func main() { s :=3D ghttp.GetServer() s.BindHandler("/", func(r *ghttp.Request){ r.Response.Writeln("=E6=9D=A5=E8=87=AA=E4=BA=8EHTTPS=E7=9A=84=EF=BC= =9A=E5=93=88=E5=96=BD=E4=B8=96=E7=95=8C=EF=BC=81") }) s.EnableHTTPS("/etc/letsencrypt/live/goframe.org/fullchain.pem", "/etc/= letsencrypt/live/goframe.org/privkey.pem") s.Run() }
=E8=AF=81=E4=B9=A6=E9=BB=98=E8=AE=A4=E6=9C=89=E6=95=88=E6=9C=9F=E4=B8=BA=
3=E4=B8=AA=E6=9C=88
=EF=BC=8C=E5=88=B0=E6=9C=9F=E5=90=8E=E9=9C=
=80=E8=A6=81=E6=89=8B=E5=8A=A8=E7=BB=AD=E6=9C=9F=EF=BC=8C=E4=BD=BF=E7=94=A8=
=E4=BB=A5=E4=B8=8B=E5=91=BD=E4=BB=A4=EF=BC=9A
certbo= t renew
=E7=A4=BA=E4=BE=8B1=EF=BC=8C=E6=88=91=E4=BB=AC=E5=8F=AF=E4=BB=A5=E4=BD=
=BF=E7=94=A8crontab
=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=9D=
=A5=E5=AE=9E=E7=8E=B0=E8=87=AA=E5=8A=A8=E7=BB=AD=E6=9C=9F=EF=BC=9A
# =E6= =AF=8F=E5=A4=A9=E5=B0=9D=E8=AF=95=E7=BB=AD=E6=9C=9F=E4=B8=80=E6=AC=A1=EF=BC= =8C=E6=88=90=E5=8A=9F=E5=90=8E=E9=87=8D=E5=90=AF`GoFrame`=E6=A1=86=E6=9E=B6= =E8=BF=90=E8=A1=8C=E7=9A=84WebServer 0 3 * * * certbot renew --quiet --renew-hook "kill -SIGUSR1 $(pidof =E8=BF= =9B=E7=A8=8B=E5=90=8D=E7=A7=B0)"
=E7=A4=BA=E4=BE=8B2=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=88=91=E4=BB=AC=E9=80=
=9A=E8=BF=87nginx
=E7=AE=A1=E7=90=86=E8=AF=81=E4=B9=A6=EF=BC=8C=
=E9=82=A3=E4=B9=88=E6=88=91=E4=BB=AC=E5=8F=AF=E4=BB=A5=E8=BF=99=E6=A0=B7=E6=
=9D=A5=E8=AE=BE=E7=BD=AE=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=EF=BC=9A
# =E6= =AF=8F=E5=A4=A9=E5=B0=9D=E8=AF=95=E7=BB=AD=E6=9C=9F=E4=B8=80=E6=AC=A1=EF=BC= =8C=E8=AF=81=E4=B9=A6=E7=BB=AD=E6=9C=9F=E9=9C=80=E8=A6=81=E5=85=88=E5=85=B3= =E9=97=AD80=E7=AB=AF=E5=8F=A3=E7=9A=84WebServer=E7=9B=91=E5=90=AC 0 3 * * * service nginx stop && certbot renew --quiet --renew-hook = "service nginx start"
=E4=B8=BA=E4=BA=86=E9=98=B2=E6=AD=A2certbot renew
=E5=91=BD=
=E4=BB=A4=E5=8F=AF=E8=83=BD=E7=9A=84=E5=A4=B1=E8=B4=A5=E5=AF=BC=E8=87=B4
# =E6= =AF=8F=E5=A4=A9=E5=B0=9D=E8=AF=95=E7=BB=AD=E6=9C=9F=E4=B8=80=E6=AC=A1=EF=BC= =8C=E8=AF=81=E4=B9=A6=E7=BB=AD=E6=9C=9F=E9=9C=80=E8=A6=81=E5=85=88=E5=85=B3= =E9=97=AD80=E7=AB=AF=E5=8F=A3=E7=9A=84WebServer=E7=9B=91=E5=90=AC=20 0 3 * * * service nginx stop && certbot renew --quiet --renew-hook = "service nginx start" 5 3 * * * service nginx start