openssl生成证书

【网络】openssl及其使用

安稳与你 提交于 2020-01-11 06:42:36
介绍 OpenSSL是面向TLS和SSL协议的全能工具,同时也是一个通用的加解密工具。 此博客参考: openssl常用命令 https://www.sslshopper.com/article-most-common-openssl-commands.html 常用选项 -noout 不打印base64编码的key,在某些情况下,会省略输出相关信息 -modulus 显示用于计算公钥和私钥的模(见RSA) -new 创建 -nodes 不加密 -config file 指定额外的配置文件 -x509 在req命令中,用于创建自签名的证书而不是证书签名请求(CSR) -in file 从file读取内容 -inform FORM 指定输入的文件格式 -out file 将生成内容写到文件 -outform FORM 指定输出的文件格式 常用命令 生成RSA密钥 openssl genrsa -out private.key 2048 生成一个证书签名请求(CSR) openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key 检查RSA私钥 openssl rsa -in privateKey.key -check 输出证书细节 openssl x509 -in certificate

# openssl 生成ssl证书详解

烈酒焚心 提交于 2020-01-10 20:05:09
1.概念 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即CA(例如中国各地方的CA公司)中心签发的证书,也可以由企业级CA系统进行签发。 一般证书分有三类,根证书、服务器证书和客户端证书。根证书,是生成服务器证书和客户端证书的基础,是信任的源头,也可以叫自签发证书,即CA证书。服务器证书,由根证书签发,配置在服务器上的证书。客户端证书,由根证书签发,配置在服务器上,并发送给客户,让客户安装在浏览器里的证书。 接下来,认识了证书的基本概念之后,我们来认识下这几个概念,公钥/私钥/签名/验证签名/加密/解密/对称加密/非对称加密。 我们一般的加密是用一个密码加密文件,然后解密也用同样的密码。这很好理解,这个是对称加密。而有些加密时,加密用的一个密码,而解密用另外一组密码,这个叫非对称加密,意思就是加密解密的密码不一样。其实这是数学上的一个素数积求因子的原理应用,其结果就是用这一组密钥中的一个来加密数据,用另一个来解密,或许有人已经想到了,没错这就是所谓的公钥和私钥。公钥和私钥都可以用来加密数据,而他们的区别是,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥加密数据

iOS RSA公钥加密数据 服务端接受PHP私钥解密 反过服务端公钥加密数据 iOS端私钥解密数据

扶醉桌前 提交于 2020-01-10 01:56:36
*/ /*--> */ */ /*--> */ 加密传输的数据,采用 RSA算法,RSA是一种非对称算法,算法需要一对密钥,使用其中一个加密,需要使用另外一个才能解密。有可私钥可以直接生产公钥。 iOS SDK并不支持私钥加密,公钥解密。可以通过OPENSSL第三方库解决。 使用openssl命令行生成密钥对 openssl req -x509 - out public_key.der -outform der - new -newkey rsa: 1024 -keyout private_key.pem 根据提示,填入私钥的密码(代码中需要用到),签名证书的组织名、邮件等信息之后,就会生成包含有公钥的证书文件public_key.der合私钥文件private_key.pem。 public_key.der文件用于分发到iOS客户端进行公钥加解密,而private_key.pem文件留在服务器端供php使用。当然,为了在服务器端进行加解密测试,那么我们还可以生成一个服务器端PHP使用的pem公钥文件: openssl rsa - in private_key.pem -pubout - out public_key.pem 上面这个命令就会根据输入的私钥文件生成pem格式的公钥文件了。从这里也可以看到,根据私钥,我们是可以生成相对应的公钥的,这也就是为什么我们要把公钥放在客户端

openssl rsautl和openssl pkeyutl(文件的非对称加密)

坚强是说给别人听的谎言 提交于 2020-01-09 20:32:18
openssl系列文章: http://www.cnblogs.com/f-ck-need-u/p/7048359.html rsautl是rsa的工具,相当于rsa、dgst的部分功能集合,可用于 生成数字签名、验证数字签名、加密和解密文件 。 pkeyutl是非对称加密的通用工具,大体上和rsautl的用法差不多,所以此处只解释rsautl。 openssl rsautl [-in file] [-out file] [-inkey file] [-pubin] [-certin] [-passin arg] [-sign] [-verify] [-encrypt] [-decrypt] [-hexdump] openssl pkeyutl [-in file] [-out file] [-sigfile file] [-inkey file] [-passin arg] [-pubin] [-certin] [-sign] [-verify] [-encrypt] [-decrypt] [-hexdump] 共同的选项说明: -in file:指定输入文件 -out file:指定输出文件 -inkey file:指定密钥输入文件,默认是私钥文件,指定了"-pubin"则表示为公钥文件,使用"-certin"则表示为包含公钥的证书文件 -pubin:指定"-inkey

nginx 自签名证书 配置 https

血红的双手。 提交于 2020-01-08 10:28:10
最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。 1、首先确保机器上安装了openssl和openssl-devel # yum install openssl # yum install openssl-devel 2、生成证书 首先,进入你想创建证书和私钥的目录,例如: # cd /etc/nginx/ 创建服务器私钥,命令会让你输入一个口令: # openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): # openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: # cp server.key server.key.org # openssl rsa -in server.key.org -out server.key 最后标记证书使用上述私钥和CSR: # openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

RSA加密原理与秘钥、公钥生成

余生颓废 提交于 2020-01-08 01:46:01
RSA加密(非对称加密) RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。(不可逆向运算的加密方法) 它通常是先生成一对RSA 密钥,其中之一是保密密钥(私钥),由用户保存;另一个为公开密钥(公钥),可对外公开,甚至可在 网络服务器 中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。 RSA进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量 数据加密 。RSA的速度比对应同样安全级别的对称 密码算法 要慢1000倍左右。 PHP端(操作方法): 生成证书前先检查 /etc/pki/CA 是否有 index.txt 和 serial 文件 以下是创建的方法 touch index.txt 排序数据库,用来跟踪已经颁发的证书。我们把它命名为index.txt,文件内容为空 touch serial echo 01 > serial 用来跟踪最后一次颁发的证书的序列号,我们把它命名为serial,初始化为01 在linux下创建一个文件夹MyCA 在MyCA下创建两个文件夹用来保存 certs 用来保存我们的CA颁发的所有的证书的副本 private用来保存CA证书的私钥匙 mkdir

笔记整理——使用openssl编程

萝らか妹 提交于 2019-12-29 22:42:20
error: openssl 的所有解决方案 (2013/6/22 17:39:00) error: openssl/crypto.h: No such file or directory 解决方案 (2013/6/22 17:39:00) error: openssl/crypto.h: No such file or directory error: openssl/md5.h: No such file or directory 解决方案 libssl-dev 没有安装,只要 sudo apt-get install libssl-dev 就可以了 libssl-dev 没有安装,只要 sudo apt-get install libssl-dev 就可以了 undefined reference to `MD5'_fengzi_lu的空间_百度空间 - Google Chrome (2013/8/8 15:23:26) undefined reference to `MD5' 这是因为包含md5函数的库为/usr/lib/libcrypto.a(.so),所以编译时使用 -lcrypto 就OK了。 基于X.509证书和SSL协议的身份认证过程实现 - 菜鸟浮出水 - 51CTO技术博客 - Google Chrome (2013/6/7 17:14:52) 客户端程序代码

openssl常用命令行汇总

不羁岁月 提交于 2019-12-29 22:40:14
openssl常用命令行汇总 随机数 openssl rand -out rand.dat -base64 32 摘要 直接做摘要 openssl dgst -sha1 -out dgst.dat plain.txt 先做摘要,然后对摘要进行签名/验签 签名摘要 openssl dgst -sha1 -sign priv.key -out sig.dat plain.txt 验签摘要 openssl dgst -sha1 -verify pub.key -signature sig.dat plain.txt 对称加密 块加密 加密 openssl enc -sm4 -K "0123456789abcdeffedcba9876543210" -iv "12345678123456781234567812345678" -e -in plain.txt -out encrypted.dat 解密 openssl enc -sm4 -K "0123456789abcdeffedcba9876543210" -iv "12345678123456781234567812345678" -d -in encrypted.dat -out decrypted.dat 流加密 加密 openssl enc -rc4 -a -K 0000000000000000 -in plain.dat

OpenSSL学习笔记

蹲街弑〆低调 提交于 2019-12-29 22:39:12
SSL缺省只进行server端的认证,客户端的认证是可选的。以下是其流程图(摘自TLS协议)。 加密算法介绍:   对称加密:       DES:date encrption standard,56bit       3DES:       AES: Advanced           AES192,AES256,AES512       Blowfish   单向加密     MD4,MD5     SHA1, SHA192,SHA256,SHA384     CR3-32   公钥加密:(加密和签名)     身份认证(数字签名)     数据加密     密钥交换    RSA:加密、签名    DSA:签名    ELGamal OpenSSL:SSL的开源实现   libcrypto: 加密库   libssl:  TLS/SSL的实现     基于会话的,实现身份认证,数据机密性和会话完整性的TLS/SSL库   openssl:多用途命令行工具     实现私有证书颁发机构 子命令 测试opensll对加密算法支持的速度 speed: openssl speed des 加密和解密 enc (man enc)   加密(encrypted) openssl enc -des3 -salt -a -in inittab -out inittab.des3

CA证书生成笔记

谁都会走 提交于 2019-12-24 16:35:48
目录 1、实例 2、帮助命令 3、常用命令 1、实例 ----------------------------pem格式的证书------------- 1、CA的私钥,自签名证书 openssl genrsa -out ca-key.pem -aes128 2048 openssl req -new -x509 -key ca-key.pem -out ca-cert.pem -days 1000 牢记下面三个属性值,生成csr.pem时需要保持一致: Country Name,State or Province Name,Organization Name 2、server端的私钥,证书请求,证书 openssl genrsa -out server-key.pem -aes128 2048 openssl req -new -key server-key.pem -out server-csr.pem openssl ca -in server-csr.pem -cert ca-cert.pem -keyfile ca-key.pem -out server-cert.pem -days 365 如果发生以下错误: "I am unable to access the ../../CA/newcerts directory ../../CA/newcerts: No such