使用openssl生成自签证书使项目支持https

使用openssl生成自签证书使项目支持https

生成CA证书

  1. 创建私钥 openssl genrsa -out ca-key.pem 1024
  2. 创建证书请求 openssl req -new -out ca.csr -key ca-key.pem
  3. 之后按个人的实际情况,填写信息 (这些信息会标明在证书里面)
  4. 自签署证书 openssl x509 -req -in ca.csr -out ca.cer -signkey ca-key.pem -days 3650

生成server证书

  1. 生成server证书 openssl genrsa -out server-key.pem 1024
  2. 创建证书请求 openssl req -new -out server-req.csr -key server-key.pem
  3. 根据个人的实际情况,填写信息
  4. 自签署证书
    openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca.cer -CAkey ca-key.pem -CAcreateserial -days 3650
  5. 之后更改 server-cert.pem的后缀 server-cert.CER (不改也可以,这只是俩种不同的编码)

这样之后 server-cert.CER为自签证书,且包含公钥,server-key.pem为私钥。可以在项目中直接使用,更改后项目就可以支持https请求了

go func() {
   if err := srv.ListenAndServeTLS("server-cert.CER路径", "server-key.pem路径"); err != nil && err != http.ErrServerClosed {
      log.Fatalf("listen: %s\n", err)
   }
}()

简单版本

  1. 生成私钥
    openssl genrsa -out server.key 2048

  2. 生成 CSR (Certificate Signing Request)
    openssl req
    -subj “/C=CN/ST=BeiJing/L=BeiJing/O=XXX/OU=XXX/CN=XXX”
    -new
    -key server.key
    -out server.csr

  3. 生成自签名证书
    openssl x509
    -req
    -days 3650
    -in server.csr
    -signkey server.key
    -out server.crt

你可能感兴趣的:(go,https,ssl)