12.19 生成ssl密钥对
时间:2022-04-27
本文章向大家介绍12.19 生成ssl密钥对,主要内容包括生成ssl密钥对目录概要、生成ssl密钥对、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
生成ssl密钥对目录概要
- cd /usr/local/nginx/conf
- openssl genrsa -des3 -out tmp.key 2048//key文件为私钥
- openssl rsa -in tmp.key -out aminglinux.key //转换key,取消密码
- rm -f tmp.key
- openssl req -new -key aminglinux.key -out aminglinux.csr//生成证书请求文件,需要拿这个文件和私钥一起生产公钥文件
- openssl x509 -req -days 365 -in aminglinux.csr -signkey aminglinux.key -out aminglinux.crt 这里的aminglinux.crt为公钥
生成ssl密钥对
在自己的虚拟机生成ssl 需要用到openssl工具
- 在虚拟上颁发一套证书,生成ssl
- 首先得有一个openssl工具
- 切换到/usr/local/nginx/conf/目录下
[root@hf-01 ~]# cd /usr/local/nginx/conf/
[root@hf-01 conf]#
- 若是没有openssl工具,可以安装下
- 查看openssl工具是由哪个安装包安装的
[root@hf-01 conf]# rpm -qf `which openssl`
openssl-1.0.2k-8.el7.x86_64
[root@hf-01 conf]#
- 生成一个私钥,命令openssl genrsa -des3 -out tmp.key 2048
[root@hf-01 conf]# openssl genrsa -des3 -out tmp.key 2048
Generating RSA private key, 2048 bit long modulus
.......+++
......................................................................+++
e is 65537 (0x10001)
Enter pass phrase for tmp.key: //输入密码
Verifying - Enter pass phrase for tmp.key: //再次输入密码
[root@hf-01 conf]#
- openssl genrsa -des3 -out tmp.key 2048
- genrsa ,表示生成rsa的私钥
- 2048 ,2048长度
- 名字为 tmp.key
- 生成这个秘钥必须要有密码
- 在生成这个秘钥后比较麻烦,在nginx的配置文件里指定密码,每次访问浏览器,在https这个网址输入这个密码会很不方便,所以还需要去除这个密码
- 转换key,取消密码,命令 openssl rsa -in tmp.key -out gurui.key
- -in 表示指定哪一个秘钥要被转换
- -out 表示指定输出的
[root@hf-01 conf]# openssl rsa -in tmp.key -out gurui.key
Enter pass phrase for tmp.key: //输入tmp.key的密码
writing RSA key
[root@hf-01 conf]#
- 这时候tmp.key和gurui.key是属于同一个
- tmp.key,有密码
- gurui.key,没有密码
- 删除tmp.key
[root@hf-01 conf]# rm -f tmp.key
[root@hf-01 conf]#
- 生成证书请求文件,需要拿这个请求文件和私钥一起生产公钥文件
[root@hf-01 conf]# openssl req -new -key gurui.key -out gurui.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn //国家,2个字母
State or Province Name (full name) []:JiangSu //省或州
Locality Name (eg, city) [Default City]:YanCheng //城市
Organization Name (eg, company) [Default Company Ltd]:han //公司
Organizational Unit Name (eg, section) []:han //组织
Common Name (eg, your name or your server’s hostname) []:hanfeng //您的主机名
Email Address []:han1118feng@163.com //邮箱
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:hanfeng //设置密码
An optional company name []: //一个可选的公司名称
用请求证书文件和私钥文件,生成一个公钥
[root@hf-01 conf]#
- 这里的信息可以不用填写,直接回车也行
- 因为这是自己给自己颁发的证书,可以随意填写,若是购买那些正式的证书,那证书的信息就需要填写相对应的信息
- 生成公钥,命令openssl x509 -req -days 365 -in gurui.csr -signkey gurui.key -out gurui.crt
[root@hf-01 conf]# openssl x509 -req -days 365 -in gurui.csr -signkey gurui.key -out gurui.crt
Signature ok
subject=/C=11/ST=BEIJING/L=BeiJing/O=hanfeng/OU=hanfeng/CN=hanfeng/emailAddress=han1118femx08
Getting Private key
[root@hf-01 conf]#
- -days 365 证书的日期是一年
- gui.crt是公钥,gurui.key是私钥
- python实现朴素贝叶斯模型:文本分类+垃圾邮件分类
- 使用闪回查询备份数据(r2笔记43天)
- 生产环境sql语句调优实战第四篇(r2笔记41天)
- 生产环境sql语句调优实战第五篇(r2笔记41天)
- python实现逻辑logistic回归:预测病马的死亡率
- 开发 | 图片数据集太少?看我七十二变,Keras Image Data Augmentation 各参数详解
- linux过滤空文件的命令总结(r2笔记40天)
- shell脚本自动化采集性能sql(r2笔记39天)
- R语言与点估计学习笔记(EM算法与Bootstrap法)
- 开发 | 为个人深度学习机器选择合适的配置
- 阿里音乐流行趋势预测竞赛数据清洗整合——纯python
- 生产环境sql语句调优实战第二篇(r2第38天)
- 生产环境sql语句调优实战第三篇(r2笔记38天)
- 简单易学的机器学习算法——K-Means算法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MANJARO KDE安装配置(已换Arch Linux,此贴可能废弃)
- [数据库推荐]qPCR引物设计与评价
- markdown数学公式
- C++核心准则T.2:使用模板表现可以适用于多种参数类型的算法
- C++核心准则T.3:使用模板表现容器和范围
- Markdown的时序图、流程图、和甘特图+Hexo的相关配置
- 记一次Fcitx5的安装
- 解决KDE下KDE Wallet重装系统后每次登陆需要输入密码
- KDE下完美的Unity桌面体验,扔掉active window control
- C++核心准则T.5:结合使用泛型和面向对象技术应该增强它们的效果而不是成本
- C++核心准则T.10:为所有的模板参数定义概念
- C语言二级指针用法之模拟句柄用途
- Linux解压缩文件
- C++核心准则T.11:只要可能就使用标准概念
- 给pugjs的stun主题添加canvas时钟