首页 > 其他分享 >怎样在局域网中给网站作ssl认证,使其能以https协议访问(转)

怎样在局域网中给网站作ssl认证,使其能以https协议访问(转)

时间:2023-05-11 21:45:29浏览次数:47  
标签:rootCA 证书 CA ssl mkcert https pem 其能

如果要在局域网达到效果需要满足以下几点要求:

1.	证书由可信任的CA机构颁发
2.	证书在有效期
3.	访问地址和证书的认证地址一致

说明:

1. 需要在局域网内构建CA机构
2. 证书的有效期建议设置长一点,毕竟在内网使用,升级比较麻烦
3. 生成的自签证书其中包含的域名或ip要和浏览器中访问的域名或ip保持一致

2.1 mkcert

mkcert是一个使用go语言编写的生成本地自签证书的小程序,具有跨平台,使用简单,支持多域名,自动信任CA等一系列方便的特性可供本地开发时快速创建https环境使用。

mkcert的浏览器根据操作系统的不同生效也不同:

mkcert supports the following root stores:
  • macOS system store
  • Windows system store
  • Linux variants that provide either
    • update-ca-trust (Fedora, RHEL, CentOS) or
    • update-ca-certificates (Ubuntu, Debian, OpenSUSE, SLES) or
    • trust (Arch)

 

  • Firefox (macOS and Linux only)
  • Chrome and Chromium
  • Java (when JAVA_HOME is set)

我这里用windows演示,google浏览器可以支持,firefox不支持

2.1.1安装

由于go的跨平台的特性,所以直接安装即可

https://github.com/FiloSottile/mkcert/releases

我这里已windows安装包为示例

2.1.2 使用

  1. 下载后将mkcert-v1.4.3-windows-amd64.exe更名为mkcert.exe(为了在控制台少打字)
    在控制台输入 mkcert 可看到

其中明确了 -install -uninstall 的语义

  1. 将CA证书加入本地可信CA
    在控制台 mkcert -install,就帮助我们将mkcert使用的根证书加入了本地可信CA中,以后由该CA签发的证书在本地都是可信的。
  2. 查看Windows的可信CA列表
    IE浏览器中,选择设置==>Internet选项==>内容==>证书==>mkcert证书

至此标识当前CA已被信任

2.2 自签证书

  1. 生成自签证书
    1. 在控制台中命令行输入: mkcert 192.168.99.177 192.168.99.78

这里我的ip是177所以以此为例。如果有多个ip地址用空格隔开,表示该证书支持多个ip的认证,也就是浏览器访问地址的ip。
控制台中表明生成了192.168.99.177+1.pem证书文件和192.168.99.177+1-key.pem私钥文件

  1. 使用自签证书
    1. 在nginx中配置ssl用于测试
      server { listen 9888 ssl; ssl_certificate E:\Nginx1.15.11\conf\ssl\mkcert\192.168.99.177+1.pem; ssl_certificate_key E:\Nginx1.15.11\conf\ssl\mkcert\192.168.99.177+1-key.pem; location / { root E:/; } }
      这里开启9888的ssl端口。映射E盘来做测试,E盘根目录下有一张名为hzw.PNG的图片。
    2. 现在访问 https://192.168.99.177/hzw.PNG会出现警告⚠页面

2.3 发放证书

  1. 现在局域网访问测试地址会出现警告页面,我们需要将我们的CA证书发放给局域网内其他的用户,其他用户安装即可。
  2. 查找本机的CA证书
    1. 命令行查看mkcert的CA证书所在位置
      mkcert -CAROOT
      C:\Users\fanya\AppData\Local\mkcert

    2. 打开C:\Users\fanya\AppData\Local\mkcert其中包含rootCA.pem证书文件和rootCA-key.pem密钥文件。我们将rootCA.pem拷贝一个副本,并命名为rootCA.crt(因为windows并不识别pem扩展名)
      2021/08/02 15:08 2,484 rootCA-key.pem
      2021/08/02 15:08 1,797 rootCA.crt
      2021/08/02 15:08 1,797 rootCA.pem

 

  1. 将rootCA.crt拷贝给局域网的其他人,进行安装

2.4 安装证书

​ 双击rootCA.crt

安装证书==>证书存储==>受信任的根证书颁发凭证

2.5 测试

浏览器访问 https://192.168.99.177:9888/hzw.PNG

可以看到左上角变成安全标识,警告⚠页面也不会弹出。至此局域网就的ssl认证就完成了。

标签:rootCA,证书,CA,ssl,mkcert,https,pem,其能
From: https://www.cnblogs.com/eminer/p/17392332.html

相关文章

  • Https通信的SSL证书工作流程原理(转)
    前言浏览器与服务器之间的https加密通信会包括以下一些概念:非对称加密、对称加密、RSA、证书申请、根证书。https证书加密,就是在传输层tcp和应用层http之间加了一层ssl层来对传输内容进行加密。用时序图简单记录一下大致过程吧。证书工作原理服务器向证书机构申请证书的流程如......
  • CentOS7编译安装OpenSSL3.1
    CentOS7编译安装OpenSSL3.11.下载Openssl源码包官网:https://www.openssl.org/ [root@localhost~]#wgethttps://www.openssl.org/source/openssl-3.1.0.tar.gz 2.解压安装[root@localhost~]#tar-xvfopenssl-3.1.0.tar.gz-C/usr/local/[root@localhost~]#cd......
  • https://pengchenggang.github.io/vuejsdev-com-github 备份发布
    https://pengchenggang.github.io/vuejsdev-com-github备份发布现在还没有解决的就是开clash,代码提交不上去,只能关了提,但是关了提交,也得赶运气。提交代码体验很差~......
  • SSL证书配置
    1.1tomcat配置SSL证书tomcat配置#上传证书cp../bonc.com.cn.jks./conf/#修改配置server.xml<Connectorport="443"protocol="HTTP/1.1"SSLEnabled="true"maxThreads="150"scheme="https"secure="......
  • fatal: unable to access 'https://gitee.com/...': Could not resolve host: gitee.c
    把https模式换成ssh用gitremote-v查看使用的是https还是ssh等$gitremote-v>originhttps://github.com/USERNAME/REPOSITORY.git(fetch)>originhttps://github.com/USERNAME/REPOSITORY.git(push)使用gitremoteset-url命令将远程URL从HTTPS更改为SSH$gitremote......
  • ssl握手失败报错00000002:lib(0):func(0):reason(2)
    开发过程中ssl握手失败,使用demo验证是ok的,说明证书没啥问题,抓包看服务端收到客户端的ServerHello后就回了fin包,打印ssl的错误信息,00000002:lib(0):func(0):reason(2),错误码2,在ssl.h里查看到是#defineSSL_ERROR_WANT_READ       2怀疑是不是非阻塞socket导......
  • 解决“未能创建 SSL/TLS 安全通道”异常
    ServicePointManager.SecurityProtocol=SecurityProtocolType.Ssl3|SecurityProtocolType.Tls|SecurityProtocolType.Tls11|SecurityProtoco......
  • https安全协议C#
    ServicePointManager.SecurityProtocol=(SecurityProtocolType)48|(SecurityProtocolType)192|(SecurityProtocolType)768|(SecurityProtocolType)3072;ServicePointManager.Expect100Continue=true;ServicePointManager.ServerCertificat......
  • OpenSSL测试-大数-2
    任务详情0.在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务1.基于OpenSSL的大数库计算1000内的素数的乘积(5‘)2.基于OpenSSL的大数库计算你以及后面15位同学的8位学号(数字)的乘积(5‘)3.用Python或bc命令验证计算的正确性(5’)4.**提交代码(或代码链接)和运行结果截......
  • OpenSSL测试-大数
    OpenSSL测试-大数20201331黄文刚0.在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务基于OpenSSL的大数库计算1000内的素数的乘积(5‘)基于OpenSSL的大数库计算你以及后面15位同学的8位学号(数字)的乘积(5‘)用Python或bc命令验证计算的正确性(5’)提交代码(或代码链接)......