内网使用自签证书搭建https服务器

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证书,根据需求调整即可。


版权声明:本文为z2926781原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。