openssl生成证书

如何从不同扩展名的数字证书中提取明文信息? *.pem *.der *.crt *.cer *.key之间的区别是什么?...

倾然丶 夕夏残阳落幕 提交于 2020-04-07 17:25:31
作者博客:http://www.cnblogs.com/guogangj/ 原标题为:那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等) http://www.cnblogs.com/guogangj/p/4118605.html 参考英文维基百科中对PEM编码格式的介绍: https://en.wikipedia.org/wiki/Privacy-enhanced_Electronic_Mail X.509证书标准定义的两种编码格式PEM和DER PEM编码(Privacy Enhanced Mail) 特点:纯文本文件, 以-----BEGIN 某某某-----开头, 以-----END 某某某-----结尾, 内容是 base64 编码. 但使用文本编辑器只能查看表面的结构, 需要输入命令例如openssl x509 -in 某个PEM格式数字证书.pem -text -noout才能看到原始的数字证书信息 DER编码(Distinguished Encoding Rules) 特点:二进制文件格式, 一般应使用 Windows/Java 开发工具打开, 也可以使用openssl命令行工具提取其中信息或进行编码转换. openssl x509 -in 某个DER格式的数字证书.der -inform der -text

加密、解密及OpenSSL 详解

依然范特西╮ 提交于 2020-04-07 06:02:23
1. 数据传输分类 在互联网上数据传输有两种:明文传输和加密传输。明文传输的协议有:ftp、http、smtp、telnet。但是为了数据的完整性和安全性,所以后来引用了加密等相关手段来保证数据的安全和完整性。 2. 案例引入 我在外地出差,因工作需要,公司主管要发给我一份重要资料给我,怎么才能让这个资料顺利的传到我的手上,而且我怀疑有人会窃取这个重要资料,若是被谁窃取到那公司损失就大了! 3. 安全的特点 我能确定这个资料来来自公司 --- 数据来源认证 我能确保在通过因特网传输时没有被修改过 --- 数据的完整性保护(传输的过程中是否被修改) 确宝没有别人能够看到这份资料 --- 数据私密性 (不能被别看到) 主管不能事后否认他曾经发送过那份资料本给我 ---(不可否认性) 4. 角色说明 互联网 黑客 数据 加密 数据 5. 算法 (1). 密码学算法主要分为两个大类,对称加密算法和非对称加密算法,对称加密算法技术已经存在了很长的时间。最早在埃及使用! (2). 我们很快就能看到,对称加密算法和非对称加密算法各有所长和弱点,所以现代密码系统都在努力做到适当地使用这两类算法以利用它们的长处,同时又避开它们各自的缺点。 6. 对称加密算法的加密和解密原理 对称加密算法概念: 使用相同密钥与算法进行加解密运算的算法就叫做对称加密算法 具体加密过程如下图: 7.

使用OpenSSL生成自用证书

独自空忆成欢 提交于 2020-03-28 02:47:21
2013-09-07 Step 1. Create key (password protected) openssl genrsa -out prvtkey.pem 1024/2048 (with out password protected) openssl genrsa -des3 -out prvtkey.pem 1024/2048 (password protected) 这个命令会生成一个1024/2048位的密钥。 Step 2. Create certification request openssl req -new -key prvtkey.pem -out cert.csr openssl req -new -nodes -key prvtkey.pem -out cert.csr 这个命令将会生成一个证书请求,当然,用到了前面生成的密钥prvtkey.pem文件 这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。 Step 3: Send certificate request to Certification Authority (CA) 如果是自己做测试,那么证书的申请机构和颁发机构都是自己

openssl生成pem,密钥证书的创建

≡放荡痞女 提交于 2020-03-28 02:47:00
使用OpenSSL生成证书 首先得安装OpenSSL软件包openssl,安装了这个软件包之后,我们可以做这些事情: o Creation of RSA, DH and DSA Key Parameters # 创建密钥 key o Creation of X.509 Certificates, CSRs and CRLs # 创建证书 o Calculation of Message Digests # o Encryption and Decryption with Ciphers # 加密、解密 o SSL/TLS Client and Server Tests # SSL 服务器端/客户端测试 o Handling of S/MIME signed or encrypted Mail # 处理签名或加密了的邮件 1、生成RSA密钥的方法 openssl genrsa -des3 -out privkey.pem 2048这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:openssl genrsa -out privkey.pem 2048建议用2048位密钥,少于此可能会不安全或很快将不安全。2、生成一个证书请求 openssl req -new -key privkey.pem -out cert.csr

使用 OpenSSL 反弹加密 shell

人盡茶涼 提交于 2020-03-22 15:31:07
Referrence: https://xax007.github.io/2019-03-07-reverse-encrypted-shell-with-openssl/ 目录 前言 OpenSSL 简介 使用 OpenSSL 生成证书自签名证书 使用 OpenSSL 反弹加密 shell Linux Windows 使用 OpenSSL 搭建简易 HTTPS Server 参考链接 前言 在进行红队渗透测试的后渗透阶段为了进一步横行渗透往往需要反弹 shell, 这里 列出了使用各种语言进行反弹 shell 的方法,我发现这种反弹 shell 方式都有一个缺点,那就是 所有的流量都是明文传输的 。 我们使用 nc 反弹 shell 进行测试 使用 wireshark 可以直接看到我们执行的命令和返回信息 在这种情况下当我们进行操作时,网络防御检测系统(IDS、IPS等)会获取到我们的通信内容并进行告警和阻止,因此需要对通信内容进行混淆或加密,这时可以选择使用 OpenSSL 反弹一个加密 shell。 OpenSSL 简介 在计算机网络上,OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份 利用 OpenSSL 反弹 shell 之前需要生成自签名证书 使用 OpenSSL 生成证书自签名证书 openssl

php常用加密函数和算法

♀尐吖头ヾ 提交于 2020-03-19 03:12:10
关键词: 不可逆: md5(); 计算字符串的 MD5 散列值 不可逆 默认返回32位的16进制 crypt(); 单向字符串散列 可以混淆盐值 不可逆 sha1(); 计算字符串的 sha1 散列值 默认返回值是一个 40 字符长度的十六进制数字。 不可逆 hash() hash($ago,$data); $ago是可以指定加密使用的哈希算法,例如:"md5","sha256","haval160,4" 等。$data是要加密的数据 不可逆 password_hash() – 对密码加密. $hash = password_hash($passwod, PASSWORD_DEFAULT); 现在PHP的官方都是推荐这种方式来加密用户的密码,很多流行的框架比如Laravel就是用的这种加密方式。 可逆: URL编码加密 urlencode() urldecode() url传递 保护特殊字符串使用 $str=" http://guojiadong.com?name= ".urlencode('guojiadong&123'); 可逆 Base64编码加密 base64_encode() base64_decode() base64加密本质上说就是把数据转换为ASCLL码 ,这会更有利于文件的传输,当然base64的作用在与文件的传输 可逆 PHP的openssl扩展

SSL双向认证

旧街凉风 提交于 2020-03-18 11:38:09
某厂面试归来,发现自己落伍了!>>> 之前的方式只是实现1:1的模式,昨天同事继续实现了n:1的模式,这里我再整理记录下。 由于nginx的ssl_client_certificate参数只能指定一个客户端公钥,如果增加一个客户端进行通信就要重新配一个server。 n:1的模式是通过CA的级联证书模式实现的,首先 自己 生成一套CA根级证书,再借助其生成二级证书作为client证书。 此时client私钥签名不仅可以通过对应的client公钥验证,还可通过根证书的公钥进行验证。 看到这里应该豁然开朗了吧,下面简单介绍下具体怎么操作: 1 准备工作 1.1 openssl目录准备 一般情况下openssl的配置文件都在这个目录 /etc/pki/tls ,so: mkdir /etc/pki/ca_linvo cd /etc/pki/ca_linvo mkdir root server client newcerts echo 01 > serial echo 01 > crlnumber touch index.txt 1.2 openssl配置准备 修改openssl配置 vi /etc/pki/tls/openssl.cnf 找到这句注释掉,替换为下面那句 #default_ca = CA_default default_ca = CA_linvo 把 [ CA

配置nginx支持https

▼魔方 西西 提交于 2020-03-17 23:09:46
某厂面试归来,发现自己落伍了!>>> 首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 然后就是自己颁发证书给自己 #cd /usr/local/nginx/conf #openssl genrsa -des3 -out server.key 1024#openssl req -new -key server.key -out server.csr #openssl rsa -in server.key -out server_nopwd.key #openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt 至此证书已经生成完毕,下面就是配置nginx server { listen 443; ssl on; ssl_certificate /usr/local/nginx/conf/server.crt; ssl_certificate_key /usr/local/nginx/conf/server_nopwd.key; } 然后重启nginx即可。 如果需要免费证书请看: 使用let's Encrypt给网站加入https同时支持http2 来源:

openssl生成https自签名证书

為{幸葍}努か 提交于 2020-03-12 10:43:04
环境:ubuntu 16.04 OpenSSL 1.0.2g 1 Mar 2016 为了方便创建10年的证书,如果你需要更长自行修改3650为自己想要的天数 准备部分 1.创建目录 mkdir -p /tmp/https_crt && cd /tmp/https_crt 2.创建生成证书时需要的文件夹和文件 mkdir -p ./demoCA/newcerts touch ./demoCA/index.txt echo 00 > ./demoCA/serial 证书应答文件 cat>https.conf<<EOF [ req ] default_bits = 4096 prompt = no default_md = sha256 distinguished_name = dn [ dn ] C = CN ST = yourstate L = yourcity O = yourcommpany OU = yourcommpany CN = yourdomain.com EOF 4.生成CA私钥 openssl genrsa -out ca.key 4096 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -config https.conf 5.生成证书私钥 openssl genrsa -out server

p12, crt, key, cer等证书,用自定义根证书生成客户端和服务端的证书

五迷三道 提交于 2020-03-12 06:42:00
证书之间的相互转换 # p12 -> crt openssl pkcs12 -in ./keystore.p12 -nokeys -clcerts -out ./keystore.crt # p12 -> key openssl pkcs12 -in ./keystore.p12 -nocerts -nodes -out ./keystore.key # crt,key -> p12 openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name "irving" openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "irivng" # crt -> cer openssl x509 -in ca.crt -out ca.cer -outform der # 查看证书 openssl x509 -text -noout -in server.crt # 添加根证书到jre sudo keytool -import -alias matrix -keystore " $JRE /lib/security/cacerts" -storepass changeit -keypass