欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

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

1.生成证书

        因为是内网环境,所以自签发证书即可,也是免费的。如果是外网环境,请使用云服务商提供的证书。

        本文主要介绍内网,使用ip访问的系统,配置https服务器:

  •   创建配置文件 openssl.cnf

  1. [req]
  2. distinguished_name = req_distinguished_name
  3. req_extensions = v5_req
  4. [req_distinguished_name]
  5. countryName = Country Name (2 letter code)
  6. countryName_default = CN #国家
  7. stateOrProvinceName = State or Province Name (full name)
  8. stateOrProvinceName_default = BEIJING
  9. localityName = Locality Name (eg, city)
  10. localityName_default = BEIJING
  11. organizationalUnitName  = Organizational Unit Name (eg, section)
  12. organizationalUnitName_default  = MYORG
  13. #此处修改域名或者ip
  14. commonName = TEST
  15. commonName_max  = 64
  16. emailAddress = test@163.com
  17. [v5_req]
  18. # Extensions to add to a certificate request
  19. basicConstraints = CA:FALSE
  20. subjectAltName = @alt_names
  21. [alt_names]
  22. #此处增加域名和ip,使用https服务器的局域网ip即可,ip可以配置多个,只要一个自行删除
  23. IP.1 = 192.168.0.11
  24. 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中配置如下

  1. server:
  2. ssl:
  3. enabled: true
  4. key-store-password: 123456
  5. key-store: classpath:server.p12
  6. key-store-type: PKCS12

 完成以上配置,启动程序即可,是不是很简单。

然后即可使用https访问,

如访问提示不安全,请先在客户端电脑上安装之前生成的证书:

安装后访问,提示如下:

 注:我们使用的生产环境往往比较复杂,如高可用、负载均衡、前后端分离等技术等,

        我们该如何使用证书配置呢,简单说,相关服务端工具均可单独配置证书,如在nginx、tomcat等配置文件中都可以配置https证书,根据需求调整即可。




普通分类: