使用openssl自签证书到IIS并在局域网内访问

下载安装openssl

  1. 下载地址, 进行安装
  2. 设置环境变量
  3. 使用命令openssl version验证是否安装成功:

设置openssl.cnf

  1. 新建一个文件夹, 将D:\Program Files\OpenSSL-Win64\bin\cnf\openssl.cnf拷贝一份出来, 后面需要进行修改, 并且根据这个配置生成证书, 例如我拷贝到了
  2. 编辑openssl.cnf文件, 里面有几个地方需要修改
# 找到 req 节点, 
[ req ]
default_bits		= 2048
default_keyfile 	= privkey.pem
distinguished_name	= req_distinguished_name
attributes		= req_attributes
# x509的扩展,影响到生成x509的证书生成, 我们后面将使用x509命令, 所以后面对v3_ca这个节点进行修改(此处不用改)
x509_extensions	= v3_ca
# 网上许多文章写的都是对v3_req命令修改, 本文用不到
req_extensions = v3_req 

# 找到 v3_ca 节点
[ v3_ca ]
# x509命令的扩展
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true
# 表示可选属性的扩展, 这一行就是我们加上的, 表示定义了一组可选项
subjectAltName = @alt_names

# 这一组定义都是新增的, 对应上面的 @alt_names
[ alt_names ]
# DNS.n 表示证书的可选域名, n为数字, 逐一累加自己填写即可
DNS.1 = localhost
# IP.n 同DNS.n 表示证书的可选ip
IP.1 = 127.0.0.1
IP.2 = 10.1.1.1
  1. 如上面的openssl.cnf所示, 就是加入了可选域名和可选ip, 后面会避免浏览器报出"Subject Alternative Name missing(没有可选名称)"的错误
  2. 我们使用的x509命令生成证书, 所以只修改了x509节点. 如果是使用req命令, 则需要修改req相关的节点, 修改方法一摸一样的

使用openssl生成证书

  1. cmd切换到我们刚才的新建文件夹, 执行命令
#openssl req -new -x509 -days 有效期(天) -keyout 密钥位置 -out 证书位置 -config 使用哪个配置文件(使用我们刚才修改过的openssl.cnf)
openssl req -new -x509 -days 3650 -keyout ca.key -out ca.crt -config openssl.cnf
  1. 命令要填入各种密码, 需要记录下来, 并且省份,城市等, 最重要的是Common Name填入你网站的Ip或者域名, 并且上面的alt_names也要配置你的Ip或者域名
  2. ca.crt生成出来之后可以双击, 打开之后查看详细信息, 若能看到"使用者可选名称", 则表示正常
  3. 继续执行命令生成pfx文件, 后面给IIS使用
#openssl pkcs12 -export -inkey 密钥 -in 证书 -out pfx文件位置
openssl  pkcs12 -export -inkey ca.key -in ca.crt -out ca.pfx

给IIS配置证书

  1. 将上一步生成的ca.crt和ca.pfx拷贝到服务器上
  2. 点击ca.crt安装证书到服务器上
  3. 打开IIS, 点击计算机名称, 双击中间的服务器证书
  4. 点击右侧的导入按钮, , 选择刚才的pfx文件, 并输入密码
  5. 切换到对应的站点, 点击最右侧"绑定", 然后选择https, 绑定刚才的证书
  6. 这样就服务器就配置好了

配置客户端

  1. 这时浏览器访问站点应该会有一个错误, 提示"此站点缺少有效的受信任证书"
  2. F12-安全-查看证书-详细信息-复制到文件, 选择一个保存位置, 然后双击安装, 重启浏览器即可
posted @ 2021-07-08 16:49  zhoushiya  阅读(1252)  评论(0编辑  收藏  举报