网络服务与安全之openSSL制作CA证书
在网络中,数据在服务器端与客户端之间传递,为了保证数据安全,需要将数据进行加密后再传输,这样即使数据被窃取,窃听者也无法知道数据的真实内容。
当前的网络服务中,使用TLS来加密。应用层在TLS之上,使得在数据传到应用层之前就已经完成了加密和解密的过程。
- 相关概念:
SSL(secure sockets layer):安全套接字
TLS(transport layer security):安全传输层协议
CA(certificate authority):认证中心:
CSR(certificate signing request):签名证书请求文件-用于向CA申请数字签名
2、Openssl,一个开源项目,作为一个多用途的命令行工具,包括如下命令:
enc:对称加密
dgst:单向加密
passwd:生成密码
rand:生成随机数
genrsa:生成私钥
rsa:提取公钥(从生成的私钥中提取)
x509:自签证书
req:CSR证书请求文件生成(通过私钥文件生成)
3、证书生成过程(以自签名证书为例)
(1)生成流程:
CA机构:(1)生成私钥(2)用私钥生成csr文件(3)生成自签名证书
服务器:(2)生成私钥(2)生成csr文件(3)用CA的相关信息生成签名证书
(2)req命令参数说明:
-new 生成一个新的证书请求文件
-key:指定已有的秘钥文件生成秘钥请求,与-new配合
-out:指定输出文件,为证书请求文件
-newkkey:与-key互斥,生成证书请求文件时自动生成秘钥,其名称由-keyout指定
-nodes :如果指定-newkey自动生成秘钥,那么-nodes选项说明生成的秘钥不需要加密
-x509:创建一个证书文件
(3)x509命令参数
-signkey:指定签名秘钥(须为私钥),并使得由-in 提供的输入文件转成自签名的证书
-req :输入是一个证书请求,签名并输出
4、具体命令
生成 CA 私钥:openssl genrsa -out ca.key 1024,其中,1024表示私钥位数
生成 CA 证书签名文件:openssl req -new -key ca.key -out ca.csr
生成 CA 根证书(公钥):openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
【直接生成 CA 根证书(公钥),相当于上面两条命令一起执行了】:
openssl req -new -x509 -key ca.key -out ca.crt
制作生成网站的证书并用CA 签名认证
生成证书私钥:openssl genrsa -out server.pem
制作解密后的证书私钥:openssl rsa -in server.pem -out server.key
生成签名请求文件:openssl req -new -key server.pem -out server.csr
用CA 进行签名,制作证书:openssl x509 -req -ca ca.crt -CAkey ca.key -in server.csr -out server.crt
5、Nginx配置
监听443端口,并配置ssl_certificate_key 和 ssl_certificate
具体配置示例:
server{
listen 443;
ssl on;
ssl_certificate_key server.key;
ssl_certificate server.crt;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}
配置完成后,重新启动Nginx,就可以用https访问了。(注意location的配置,能正常访问就行)
网络服务与安全之openSSL制作CA证书相关推荐
- 如何使用Openssl 制作CA证书
一.SSL协议百科名片 SSL是Secure Socket Layer(安全套接层协议),可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标 ...
- Windows下OpenSSL创建CA证书以及客户端和服务器端证书
打开命令行工具,转到安装目录bin文件夹, $ mkdir -p ./demoCA/{private,newcerts} $ touch ./demoCA/index.txt $ echo 01 &g ...
- 基于Kubernetes构建企业容器云【入门实战篇】- 手动制作CA证书(二)
手动制作CA证书 操作主机:master ps:关于自签名证书,所有的证书都是在master节点上生成,然后copy到node节点的. 1.安装 CFSSL [root@linux-node1 ~]# ...
- 使用OpenSSL实现CA证书的搭建过程
个人博客地址:http://www.pojun.tech/ 欢迎访问 什么是CA CA,Catificate Authority,通俗的理解就是一种认证机制.它的作用就是提供证书(也就是服务端证书 ...
- Apache OpenSSL生成CA证书使用
最近在学习SSL协议,这次是基于Apache服务器自带的openssl来实现的 TLS:传输层安全协议 SSL:安全套接字层 KEY:私钥 CSR:证书签名请求,即公钥,生成证书时需要将此提交给证书机 ...
- 24、OpenSSL生成CA证书及终端用户证书
1.准备ca.conf配置文件 内容如下 [ req ] default_bits = 4096 distinguished_name = req_distinguished_name[ ...
- openssl私有CA证书签发与单双向认证
什么是CA? CA是数字认证中心的简称.指的是发放.管理.废除数字证书的机构. CA的作用: 检查证书持有者身份的合法性.签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理. 建 ...
- win64使用openssl生成ca证书
一.准备工作: 1. 下载win64的Openssl,可到http://slproweb.com/products/Win32OpenSSL.html下载,这里下载1.0.1j版本.同时在该地址下载V ...
- 2.K8S部署-------- 制作CA证书
这页内容,不特别声明.只在node1上做操作. 1.安装 CFSSL [root@linux-node1 ~]# cd /usr/local/src [root@linux-node1 src]# w ...
最新文章
- 如何正确强制执行Git推送?
- UDP转TCP隧道工具udptunnel
- 【APUE】Chapter17 Advanced IPC sign extension 结构体内存对齐
- linux git gui使用教程,跨平台最好用的Git GUI工具gitkraken
- Php 与 Json
- 在MaxCompute上分析IP来源的方法
- php引号变量_下列PHP数据库insert语句中变量前后的点和双引号有什么作用?
- Flask之WTForms
- @Param注解在dao层的使用
- html 图片移动动画,HTML5移动端图片左右切换动画DEMO演示
- Python高级特性:Python迭代、生成器、列表生成式
- AngularJs ngList、ngRepeat、ngModelOptions
- 卢卡斯Lucas定理
- java-net-php-python-java门诊信息管理系统计算机毕业设计程序
- 11个并不广为人知,但值得了解的Python库
- 浅谈NLM非局部均值滤波
- 从redis中取值 然后通过list进行分页查询
- 旋转编码器的原理和使用方法
- python_MOD13A3_NDVI 最大合成
- 卖二手车能挣多少钱?
热门文章
- Clickjacking (UI redressing)点击劫持
- [攻城狮计划]如何优雅的在RA2E1上运行RT_Thread
- android电话号码导入iphone6,将Android通讯录导入iphone的方法
- RPG Maker MV 踩坑二 新仙剑子菜单
- 用C#实现递归调用方法
- Mac 效率神器 Alfred快速上手
- java treeview使用详解_TreeView详细用法
- 考研不歧视双非的院校计算机专业,考研23所良心大学:不歧视“双非”,且保护一志愿。赶紧看过来!...
- YOLOv5、YOLOv7改进首发最新PWConv核心结构|来自最新CVPR2023顶会,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS
- html中tr和td怎么快速输入,HTML的tr和td标签