全网最详细的https自签名教程,一文带你搞定所有配置及签名! 您所在的位置:网站首页 https需要ssl证书 全网最详细的https自签名教程,一文带你搞定所有配置及签名!

全网最详细的https自签名教程,一文带你搞定所有配置及签名!

2024-01-21 18:14| 来源: 网络整理| 查看: 265

  大家好,我是Coder哥,今天分享一个局域网https自签名的问题。都是自己踩过的坑,涵盖k8s,nginx签名配置,mac,windows,ubuntu 系统签名认证流程等等。

  事情是这样的,我们的前端页面里面用到一个组件service worker ,这个组件有个前提是必须得用安全的https,而我们的客户是在内网环境里面,所以就只能用自签名证书来搞,我一想这还不容易,就迅速的百度了一下随便找了个文章开始照猫画虎,很快就弄完了,但是弄完后发现还是有问题,而且https 还是报不安全,试了好多个版本,都写的不一样,搞了两天终于试出来了,写个文章记录一下。

以下的流程不是从网上随便找的,都是实实在在自己测过验证过的

总结为如下几个方面:

自签名文件的生成过程及脚本。 普通域名的自签名。 nginx 下证书文件的添加 ingress 下证书文件的添加 泛域名的自签名。 各个系统下证书的信任流程。 mac 下证书的添加方式。 windows下证书的添加方式。 ubuntu下证书的添加方式。 火狐浏览器证书的添加方式。

证书相关文件格式说明 .key: 私钥文件 .pem: 根证书公钥 .crt: 域名证书公钥

自签名文件的生成过程

这里用的工具是openssl,怎么安装可以自行查一下

普通域名的自签名

我们以域名 td.todocoder.com为例

创建证书目录:/root/cert,进入/root/cert 创建 rootCA.key $ openssl genrsa -des3 -out rootCA.key 2048 使用生成的密钥(rootCA.key)来创建新的根SSL证书。并将其保存为rootCA.pem,证书有效期为10年 $ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.pem # 输入第一步设置的密码 Enter pass phrase for rootCA.key: Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:Zhengzhou Locality Name (eg, city) []:Zhengzhou Organization Name (eg, company) [Internet Widgits Pty Ltd]:todocoderCA Organizational Unit Name (eg, section) []:todocoderCA Common Name (e.g. server FQDN or YOUR name) []:RootTodoCoder Cert Email Address []:[email protected] # 这一行是把pem 转换成 crt格式 $ openssl x509 -outform der -in rootCA.pem -out rootCA.crt

提示填写的字段大多都可以直接回车过就行了,只要Common Name字段需要填写内容,这是生成跟证书后导入到系统的证书名称,我填的是RootTodoCoder Cert

创建生成域名ssl证书的前置文件

在这里我生成一个 td.todocoder.com 的域名证书。创建一个td.ext文件,以创建一个X509 v3证书。注意我们指定了subjectAltName选项。

cat >> td.ext fanym.ext 选择信任

ssl3.png

然后重启浏览器再访问 td.todocoder.com,可以看到显示https 安全了

ssl4.png

Windows下证书的添加方式

Windows 需要添加 rootCA 和域名的证书到系统里面

如果要访问 td.todocodoer.com 需要安装 rootCA.crt、tdtodocoder.crt 这两个证书

双击CA根证书->存储位置选择本地->指定证书位置(受信任的根证书颁发机构)

ssl7.png

ssl8.png

ubuntu下证书的添加方式

我的系统是Ubuntu 桌面版 22.04 的版本, ubuntu需要添加 rootCA 和域名的证书到系统里面

拷贝证书到ca证书的目录 $ sudo cp tdtodocoder.crt /usr/share/ca-certificates/mozilla/tdtodocoder.crt $ sudo cp fantodocoder.crt /usr/share/ca-certificates/mozilla/fantodocoder.crt $ sudo cp rootCA.crt /usr/share/ca-certifi cates/mozilla/rootCA.crt 执行下面的命令按提示选中新添加的证书,确定(点回车) ,选中(点空格键)然后选 ”OK” 就行了 $ sudo dpkg-reconfigure ca-certificates Updating certificates in /etc/ssl/certs... rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL rehash: warning: skipping rootCA.pem,it does not contain exactly one certificate or CRL 1 added, 0 removed; done. 正在处理用于 ca-certificates (20230311ubuntu0.22.04.1) 的触发器 ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done.

点回车

ssl5.png

点空格选中 -> 回车确定

ssl6.png

就可以了.

火狐浏览器证书的添加方式

Chrome,safari,Edge等浏览器直接就可以访问了,但是火狐浏览器(ubuntu桌面版火狐,其他系统的没试)的话需要在设置里面添加跟证书。具体操作:

点击设置-> 搜索证书

ssl9.png

点击查看证书 -> 证书颁发机构 -> 导入 -> rootCA.crt -> 编辑信任

ssl10.png

ssl12.png

ssl13.png

可以看到,火狐浏览器已经显示安全

ssl15.png

最后

自己踩过的坑,做个记录,希望看到这篇文章的人少走弯路,时间非常宝贵,也请不要在网上乱发没有验证过的东西,真的容易误导别人。如果这篇文章有帮到你,还请给个赞,感谢!如果觉得以后用的上别忘了收藏哦!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有