在网络中,数据在服务器端与客户端之间传递,为了保证数据安全,需要将数据进行加密后再传输,这样即使数据被窃取,窃听者也无法知道数据的真实内容。

当前的网络服务中,使用TLS来加密。应用层在TLS之上,使得在数据传到应用层之前就已经完成了加密和解密的过程。

  1. 相关概念:

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证书相关推荐

  1. 如何使用Openssl 制作CA证书

    一.SSL协议百科名片 SSL是Secure Socket Layer(安全套接层协议),可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标 ...

  2. Windows下OpenSSL创建CA证书以及客户端和服务器端证书

    打开命令行工具,转到安装目录bin文件夹, $ mkdir -p ./demoCA/{private,newcerts} $ touch ./demoCA/index.txt $ echo 01 &g ...

  3. 基于Kubernetes构建企业容器云【入门实战篇】- 手动制作CA证书(二)

    手动制作CA证书 操作主机:master ps:关于自签名证书,所有的证书都是在master节点上生成,然后copy到node节点的. 1.安装 CFSSL [root@linux-node1 ~]# ...

  4. 使用OpenSSL实现CA证书的搭建过程

    个人博客地址:http://www.pojun.tech/ 欢迎访问 什么是CA   CA,Catificate Authority,通俗的理解就是一种认证机制.它的作用就是提供证书(也就是服务端证书 ...

  5. Apache OpenSSL生成CA证书使用

    最近在学习SSL协议,这次是基于Apache服务器自带的openssl来实现的 TLS:传输层安全协议 SSL:安全套接字层 KEY:私钥 CSR:证书签名请求,即公钥,生成证书时需要将此提交给证书机 ...

  6. 24、OpenSSL生成CA证书及终端用户证书

    1.准备ca.conf配置文件​​​​​​​ 内容如下 [ req ] default_bits = 4096 distinguished_name = req_distinguished_name[ ...

  7. openssl私有CA证书签发与单双向认证

    什么是CA? CA是数字认证中心的简称.指的是发放.管理.废除数字证书的机构. CA的作用: 检查证书持有者身份的合法性.签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理. 建 ...

  8. win64使用openssl生成ca证书

    一.准备工作: 1. 下载win64的Openssl,可到http://slproweb.com/products/Win32OpenSSL.html下载,这里下载1.0.1j版本.同时在该地址下载V ...

  9. 2.K8S部署-------- 制作CA证书

    这页内容,不特别声明.只在node1上做操作. 1.安装 CFSSL [root@linux-node1 ~]# cd /usr/local/src [root@linux-node1 src]# w ...

最新文章

  1. 如何正确强制执行Git推送?
  2. UDP转TCP隧道工具udptunnel
  3. 【APUE】Chapter17 Advanced IPC sign extension 结构体内存对齐
  4. linux git gui使用教程,跨平台最好用的Git GUI工具gitkraken
  5. Php 与 Json
  6. 在MaxCompute上分析IP来源的方法
  7. php引号变量_下列PHP数据库insert语句中变量前后的点和双引号有什么作用?
  8. Flask之WTForms
  9. @Param注解在dao层的使用
  10. html 图片移动动画,HTML5移动端图片左右切换动画DEMO演示
  11. Python高级特性:Python迭代、生成器、列表生成式
  12. AngularJs ngList、ngRepeat、ngModelOptions
  13. 卢卡斯Lucas定理
  14. java-net-php-python-java门诊信息管理系统计算机毕业设计程序
  15. 11个并不广为人知,但值得了解的Python库
  16. 浅谈NLM非局部均值滤波
  17. 从redis中取值 然后通过list进行分页查询
  18. 旋转编码器的原理和使用方法
  19. python_MOD13A3_NDVI 最大合成
  20. 卖二手车能挣多少钱?

热门文章

  1. Clickjacking (UI redressing)点击劫持
  2. [攻城狮计划]如何优雅的在RA2E1上运行RT_Thread
  3. android电话号码导入iphone6,将Android通讯录导入iphone的方法
  4. RPG Maker MV 踩坑二 新仙剑子菜单
  5. 用C#实现递归调用方法
  6. Mac 效率神器 Alfred快速上手
  7. java treeview使用详解_TreeView详细用法
  8. 考研不歧视双非的院校计算机专业,考研23所良心大学:不歧视“双非”,且保护一志愿。赶紧看过来!...
  9. YOLOv5、YOLOv7改进首发最新PWConv核心结构|来自最新CVPR2023顶会,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS
  10. html中tr和td怎么快速输入,HTML的tr和td标签