https linux证书生成 支持go server

1. key的生成 (生成服务器私钥)
openssl genrsa -des3 -out ssl.key 2048 
openssl rsa -in ssl.key -out ssl.key # 无密码key 一般go不支持带密码的ssl.key

-genrsa:指定了生成了算法使用RSA

-desc:表示生成的key是有密码保护的(注:如果是将生成的key与ssl的证书一起使用,最好不需要密码,就是不要这个参数,否则其它人就会在请求的时候每次都要求输入密码)

-out:后面的参数表示生成的key的输入文件

2048:表示的是生成key的大小,单为字节(bits),看证书提供商要求,比如Godaddy规定是2048

-in : 指定要加密的文件存放路径

2. 生成CA的crt
openssl req -new -x509 -key ssl.key -out ca.crt -days 3650 

req: 配置参数-x509指定使用 X.509证书签名请求管理(certificate signing request (CSR)).“X.509” 是一个公钥代表that SSL and TLS adheres to for its key and certificate management.

-rep: 指定要加密的文件存放路径

-new: 表示生成一个新证书部署请求

-x509: 专用于CA生成自签证书,如果不是自签证书则不需要此项

-key: 生成请求时用到的私钥文件

-day: 证书的有效期,单位是天,默认是365天

3.使用ssl.key去 生成csr
openssl req -new -key ssl.key -out ssl.csr 

需要依次输入国家,地区,组织,邮箱。最重要的点有两个,一个是域名,一定要是你的域名后缀,并且能接受邮件。另一个是common name,它代表你的证书要代表的目标,如果为你网站申请的证书,就要填写域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书

  1. crt生成方法
openssl x509 -req -days 3650 -in ssl.csr -CA ca.crt -CAkey ssl.key -CAcreateserial -out ssl.crt

输入key的密钥后,完成证书生成。

-day: 证书的有效期,单位是天,默认是365天

-CA选项指明用于被签名的csr证书,

-CAkey选项指明用于签名的密钥,

-CAserial指明序列号文件,

-CAcreateserial指明文件不存在时自动生成。

5.证书合并:
cat ssl.key ssl.crt > ssl.pem #注意这里文件权限都要修改一下(root用户可忽略)

go 无法支持带密码密钥解决方法:

import(
    "github.com/gin-gonic/gin"
	"github.com/unrolled/secure"
)	

func main(){
    router := gin.Default();
    router.Use(TlsHandler());
    _ = r.RunTLS(":3000", "./ssl.pem", "./ssl.key")
}

func TlsHandler() gin.HandlerFunc {
	return func(c *gin.Context) {
		secureMiddleware := secure.New(secure.Options{
			SSLRedirect: true,
			SSLHost:     "localhost:8080",
		})
		err := secureMiddleware.Process(c.Writer, c.Request)

		// If there was an error, do not continue.
		if err != nil {
			return
		}
		c.Next()
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值