1.生成证书
因为是内网环境,所以自签发证书即可,也是免费的。如果是外网环境,请使用云服务商提供的证书。
本文主要介绍内网,使用ip访问的系统,配置https服务器:
创建配置文件 openssl.cnf:
- [req]
- distinguished_name = req_distinguished_name
- req_extensions = v5_req
- [req_distinguished_name]
- countryName = Country Name (2 letter code)
- countryName_default = CN #国家
- stateOrProvinceName = State or Province Name (full name)
- stateOrProvinceName_default = BEIJING
- localityName = Locality Name (eg, city)
- localityName_default = BEIJING
- organizationalUnitName = Organizational Unit Name (eg, section)
- organizationalUnitName_default = MYORG
- #此处修改域名或者ip
- commonName = TEST
- commonName_max = 64
- emailAddress = test@163.com
- [v5_req]
- # Extensions to add to a certificate request
- basicConstraints = CA:FALSE
- subjectAltName = @alt_names
- [alt_names]
- #此处增加域名和ip,使用https服务器的局域网ip即可,ip可以配置多个,只要一个自行删除
- IP.1 = 192.168.0.11
- IP.2 = 127.0.0.1
以上配置项可根据实际,自行修改。
生成客户端key
openssl genrsa -out server.key 2048
生成客户端请求文件
openssl req -new -out server.csr -key server.key -config openssl.cnf
生成客户端证书
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extensions v5_req -extfile openssl.cnf
生成p12格式根证书
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "server"
证书生成如下:
2. 服务端程序配置证书
本文使用springcloud工程项目,所以只需要在网关程序 gateway中配置证书即可:
先将p12证书,放在项目resource目录下
在application.yml中配置如下
- server:
- ssl:
- enabled: true
- key-store-password: 123456
- key-store: classpath:server.p12
- key-store-type: PKCS12
完成以上配置,启动程序即可,是不是很简单。
然后即可使用https访问,
如访问提示不安全,请先在客户端电脑上安装之前生成的证书:
安装后访问,提示如下:
注:我们使用的生产环境往往比较复杂,如高可用、负载均衡、前后端分离等技术等,
我们该如何使用证书配置呢,简单说,相关服务端工具均可单独配置证书,如在nginx、tomcat等配置文件中都可以配置https证书,根据需求调整即可。