【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记

这篇具有很好参考价值的文章主要介绍了【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

证书(CA证书,服务端证书,客户端证书)

1 安装CA

CA(Certificate Authority,证书授权)是由认证机构服务者签发,是数字签名的技术基础保障,也是网上实体身份的证明,能够证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。

在电子商务系统中,所有实体的证书都是由证书授权中心即CA中心颁发并签名的。一个完整的、安全的电子商务系统必须建立一个完整的、合理的CA体系。CA体系由证书审批部门和证书操作部门组成。

1.1 下载mkcert

mkcert 工具
https://gitee.com/stonedst/mkcert

$ mkcert -install
Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊

1.2 mkcert安装和配置根证书

首先到github下载mkcert工具,下面我以windows平台作为演示

在cmd中cd到mkcert所在的目录运行下面的命令

.\mkcert.exe -install

这条命令会创建一组根证书和私钥,根证书会被安装到系统中。输入下面的命令就可以查看到ca证书存放的位置。其中“rootCA.pem“就是根证书,有些系统比如windows可能不会认rootCA.pem可以把他改成rootCA.crt。将他发送给需要安装的自定义证书的设备,安装好之后自签名证书就不会显示不安全了。另外rootCA-key.pem是根证书的私钥文件,不可公开需要妥善保管。

.\mkcert.exe -CAROOT

1.3设备安装根证书

1.windows

直接打开rootCA.crt,并将证书安装到受信任的根证书

2.安卓

直接在文件管理器安装rootCA.crt

3.macos

直接在文件管理器安装rootCA.crt,然后打开钥匙串-系统找到mkcert开头的证书,双击打开。设置为下图的模式就可以了。

[【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记,密码学,密码学,ssl,nginx

4.ios

ios要先安装ca证书,然后在“设置”——“通用”——“描述文件和设备管理”——验证刚才安装的ca证书。然后在“通用”——“关于本机”——“证书信任设置”信任刚才的ca证书

mkcert签发自签名证书的教程就已经结束了,rootCA.crt可以保存在一些容易获取到的地方,比如网盘上,这样去到新的地方就可以安装根证书确保访问安全了。而且根证书本身就是公开的,不需担心安全性问题,确保不被篡改就行了。

2 自签名ssl证书

SSL证书一般有如下方法获取:SSL服务商购买、免费SSL服务商通过HTTP验证/API验证、自签SSL证书。

如果进行自签SSL证书,首先要有一个CA根证书,然后用CA根证书来签发用户证书。

用户进行证书申请:一般先生成一个私钥,然后用私钥生成证书请求(证书请求里应含有公钥信息),再利用证书服务器的CA 根证书来签发证书。

自签可以生成任意域名或IP的SSL证书,只不过是不信任的,需要自行将该CA加入信任。

2.1 CA 证书过程:

生成CA私钥(.key)–>生成CA证书请求(.csr)–>自签名得到根证书(.crt)(CA给自已颁发的证书)

2.2 自签名流程

生成服务端key(.key)–>生成服务端请求文件(.csr)–>生成服务端证书,使用CA根证书签发(.crt)–>生成pem格式证书–>生成p12格式证书

自签SSL一般需要使用openssl命令步骤比较繁琐,今天我们借助mkcert工具来一键生成SSL证书并且信任该CA。

2.3签发证书

mkcert签发证书非常的简单,用下列的命令就可以给“192.168.100.100”签发一个ssl证书

.\mkcert.exe 192.168.100.100

当然也可以给域名签发一个ssl证书,比如给*.home.com这个泛解析域名签发ssl证书

.\mkcert.exe *.home.com

也可以给多个域名多个ip签发ssl证书,比如我给*.home.com, *.nas.com, *.Router.com, 192.168.100.100, 10.10.100.100。等三个域名,2个ip签发在同一张ssl证书中。

.\mkcert.exe *.home.com *.router.com *.nas.com 192.168.100.100 10.10.100.100

.\mkcert.exe *.abiuni.com *.techco.club   8.139.98.150 8.219.252.173

2.4给已有的证书请求(.csr)签发证书

如果已有请求文件csr文件和私钥,然后用csr文件给mkcert签发的ssl证书才能使用。【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记,密码学,密码学,ssl,nginx

把证书下载好后,将server.csr复制到mkcert所在的目录执行下面的命令,就可以根据csr文件签发出ssl证书。

.\mkcert.exe -csr server.csr

将生成的证书和里面的server.key(私钥)一起设置配置好证书的使用就可以了。

参考文献

https://post.smzdm.com/p/aeveozgm/
https://zhuanlan.zhihu.com/p/636932873
https://blog.csdn.net/Amorbcbc/article/details/131646799

3 配置nginx的https

3.1 查看NGINX是否安装SSL模块

./nginx -V # 注意,是大写的V,如果有ssl_module那就说明有,没有就自行安装

3.2 配置config文件

    server {
        listen 443;
        server_name 8.138.98.150;
        ssl on;
        ssl_certificate  /usr/share/nginx/html/card/com.pem;
        ssl_certificate_key /usr/share/nginx/html/card/com.key;

        location / {
           root   /usr/share/nginx/html;
           index  index.html index.htm index.php;
        }

    }

重启nginx文章来源地址https://www.toymoban.com/news/detail-771703.html

service nginx reload

到了这里,关于【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【密码学】 一篇文章讲透数字签名

       数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息

    2024年02月06日
    浏览(43)
  • 密码学概念科普(加密算法、数字签名、散列函数、HMAC)

    密码散列函数 (Cryptographic hash function),是一个单向函数,输入消息,输出摘要。主要特点是: 只能根据消息计算摘要,很难根据摘要反推消息 改变消息,摘要一定会跟着改变 对于不同的消息,计算出的摘要几乎不可能相同 根据散列函数的上述特点,可以应用在保存密码、数

    2024年02月10日
    浏览(40)
  • openssl基础使用(密码学 linux)

    openssl是Linux内置的一款开源工具,实现了常见的密码算法与应用。通过openssl操作,完成各种密码算法的应用。 创建一个文件,用于被加密,文件内容为12345,文件名为test.txt 一、对称加密 1、使用rc4加解密 加密 这是第一个是设置密码,第二个是重复输入密码。两次必须一样。

    2024年02月10日
    浏览(42)
  • SSL之mkcert构建本地自签名

    SSL(Secure Sockets Layer,安全套接层)是一种加密通信协议,最早由Netscape Communications公司于1994年提出。它的主要目的是为网络通信提供安全性,防止数据在传输过程中被窃听、篡改或伪造。SSL技术的核心是公钥加密与私钥解密,在此基础上,发展出了TLS(Transport Layer Security,

    2024年01月17日
    浏览(32)
  • 【密码学】为什么不推荐在对称加密中使用CBC工作模式

    这篇文章是我在公司内部分享中一部分内容的详细版本,如标题所言,我会通过文字、代码示例、带你完整的搞懂为什么我们不建议你使用cbc加密模式,用了会导致什么安全问题,即使一定要用需要注意哪些方面的内容。 注:本文仅从安全角度出发,未考虑性能与兼容性等因

    2024年02月06日
    浏览(51)
  • 【11.10】现代密码学1——密码学发展史:密码学概述、安全服务、香农理论、现代密码学

    参考:密码学发展简史 骆婷老师的《现代密码学(32H)》课程,笔记+查找的资料补充 期末为闭卷考试的形式 密码学早在公元前400多年就已经产生,人类使用密码的历史几乎与使用文字的时间一样长,密码学的发展大致可以分为 3 个阶段: 1949年之前的古典密码学阶段; 1949 年

    2024年02月04日
    浏览(42)
  • 【密码学】高级密码学-1

      通信双方使用 同一个密钥 ,通过使用加密算法配合上密钥来加密,解密过程采用加密过程的逆过程配合密钥即可。   常见的对称加密算法有DES、AES等。   对称加密的缺点:不能在不安全的网络上传输密钥,一旦密钥泄露则加密通信失败。   非对称加密使用了一

    2024年02月05日
    浏览(44)
  • 【密码学】高级密码学-2

    🍬第⑤部分由L3H_CoLin编写,有一些修改。🍬 Song, Dawn Xiaoding, David Wagner, and Adrian Perrig. “Practical techniques for searches on encrypted data.” Proceeding 2000 IEEE Symposium on Security and Privacy. SP 2000. IEEE, 2000. 数据的安全外包存储 利用密码算法加密明文数据,使得云平台无法获得额外信息 解决

    2024年02月16日
    浏览(28)
  • 【密码学】python密码学库pycryptodome

    记录了一本几乎是10年前的书(python绝技–用python成为顶级黑客)中过时的内容 里面提到了python标准库中自带的crypt库,经验证Python 3.12.1中并没有这个自带的库,密码学相关的库目前(2024.1.12)是一个自包含库pycryptodome,导入的是 import Crypto pypi库的页面 可以在文档中查看详

    2024年01月17日
    浏览(50)
  • 密码学基本原理和发展——近代密码学

    目录 1 密码机通信模型 2 Enigma密码机构造 3 Enigma密码机加解密过程 3.1 加密过程 3.2 解密过程 4 Enigma密码机的安全性 5 Enigma密码机破解 5.1 波兰雷耶夫斯基破解 5.2 图灵破解        近代密码一般指20世纪初~20世纪70年代期间的密码技术。20 世纪初电报的出现第一次使远距离

    2024年02月06日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包