生成Self Signed证书

# 生成一个key,你的私钥,openssl会提示你输入一个密码,可以输入,也可以不输,
# 输入的话,以后每次使用这个key的时候都要输入密码,安全起见,还是应该有一个密码保护
> openssl genrsa -des3 -out selfsign.key 4096 # 使用上面生成的key,生成一个certificate signing request (CSR)
# 如果你的key有密码保护,openssl首先会询问你的密码,然后询问你一系列问题,
# 其中Common Name(CN)是最重要的,它代表你的证书要代表的目标,如果你为网站申请的证书,就要添你的域名。
> openssl req -new -key selfsign.key -out selfsign.csr # 生成Self Signed证书 selfsign.crt就是我们生成的证书了
> openssl x509 -req -days 365 -in selfsign.csr -signkey selfsign.key -out selfsign.crt # 另外一个比较简单的方法就是用下面的命令,一次生成key和证书
> openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

生成自己的CA (Certificate Authority)

# 生成CA的key
> openssl genrsa -des3 -out ca.key 4096 # 生成CA的证书
> openssl req -new -x509 -days 365 -key ca.key -out ca.crt # 生成我们的key和CSR这两步与上面Self Signed中是一样的
> openssl genrsa -des3 -out myserver.key 4096
> openssl req -new -key myserver.key -out myserver.csr # 使用ca的证书和key,生成我们的证书
# 这里的set_serial指明了证书的序号,如果证书过期了(365天后),
# 或者证书key泄漏了,需要重新发证的时候,就要加1
> openssl x509 -req -days 365 -in myserver.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out myserver.crt

查看证书

# 查看KEY信息
> openssl rsa -noout -text -in myserver.key # 查看CSR信息
> openssl req -noout -text -in myserver.csr # 查看证书信息
> openssl x509 -noout -text -in ca.crt # 验证证书
# 会提示self signed
> openssl verify selfsign.crt # 因为myserver.crt 是幅ca.crt发布的,所以会验证成功
> openssl verify -CAfile ca.crt myserver.crt

去掉key的密码保护

有时候每次都要输入密码太繁琐了,可以把Key的保护密码去掉

> openssl rsa -in myserver.key -out server.key.insecure

不同格式证书的转换

# PKCS转换为PEM
> openssl pkcs12 -in myserver.pfx -out myserver.pem -nodes

# PEM转换为DER
> openssl x509 -outform der -in myserver.pem -out myserver.[der|crt]

# PEM提取KEY
> openssl RSA -in myserver.pem -out myserver.key

# DER转换为PEM
> openssl x509 -inform der -in myserver.[cer|crt] -out myserver.pem # PEM转换为PKCS
> openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.pem -certfile ca.crt

测试证书

Openssl提供了简单的client和server工具,可以用来模拟SSL连接,做测试使用。

# 连接到远程服务器
> openssl s_client -connect www.google.com.hk:443 # 模拟的HTTPS服务,可以返回Openssl相关信息
# -accept 用来指定监听的端口号
# -cert -key 用来指定提供服务的key和证书
> openssl s_server -accept 443 -cert myserver.crt -key myserver.key -www # 可以将key和证书写到同一个文件中
> cat myserver.crt myserver.key > myserver.pem
# 使用的时候只提供一个参数就可以了
> openssl s_server -accept 443 -cert myserver.pem -www # 可以将服务器的证书保存下来
> openssl s_client -connect www.google.com.hk:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > remoteserver.pem
# 转换成DER文件,就可以在Windows下直接查看了
> openssl x509 -outform der -in remoteserver.pem -out remoteserver.cer

计算MD5和SHA1

# MD5 digest
> openssl dgst -md5 filename # SHA1 digest
> openssl dgst -sha1 filename

openssl 证书操作命令的更多相关文章

  1. iOS push全方位解析(二)【译文】"——生成OpenSSL证书,Provisioning Profile

    这是一篇来自raywenderlich的教程,内容翔实!结构简单透彻.讲解循序渐进.文章质量上乘!是一篇难的的博文!使用半瓶的英语水平翻译了一下: 1.[iOS push全方位解析](一) push的 ...

  2. openssl证书制作详细教程

    自签名证书及验证 模拟证书涉及的角色 创建证书目录 mkdir ~/certs cd ~/certs 认证机构.网站.浏览器/用户 mkdir root web user 机构自签名证书生成和发布 生 ...

  3. openssl 证书请求和自签名命令req详解

    1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念,初学者可能会搞不清楚三者的关系,网上有的根据后缀名来区分三者,更让人一头雾水.我们以申请证书的流程说 ...

  4. openssl证书及配置

    我的环境是:Linux+Apache+MySQL+PHP 1.下载openssl 及相关依赖 #yum install -y openssl 2.进入目录 /etc/pki/tls/certs #cd ...

  5. OpenSSL证书生成及Mac上Apache服务器配置HTTPS(也适用centos)

    自签名证书 配置Apache服务器SSL 自己作为CA签发证书 这里是OpenSSL和HTTPS的介绍OpenSSLHTTPS 开启HTTPS配置前提是已在Mac上搭建Apache服务器→Mac上Ap ...

  6. nginx配置openssl证书

    引用出处: https://blog.csdn.net/liuchunming033/article/details/48470575 证书生成基本步骤: 生成私钥(.key)-->生成证书请求 ...

  7. openssl 证书请求和签名命令req基本分析

    一 基本概念: OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls o ...

  8. 使用OpenSSL证书操作详解

    一.OpenSSL简介 OpenSSL支持多种秘钥算法,包括RSA.DSA.ECDSA,RSA使用比较普遍.官网地址:https://www.openssl.org/,一般CeontOS系统都装有Op ...

  9. 在Linux下如何根据域名自签发OpenSSL证书与常用证书转换

    在Linux下如何根据域名自签发各种SSL证书,这里我们以Apache.Tomcat.Nginx为例. openssl自签发泛域名(通配符)证书 首先要有openssl工具,如果没有那么使用如下命令安 ...

随机推荐

  1. Jquery-UI实现弹出框样式

    需要引用 <link href="CSS/jquery-ui.custom.min.css" rel="stylesheet" /> <scr ...

  2. Android --自定义简单Toast

    1. 效果图

  3. BZOJ3456: 城市规划

    Description 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或 ...

  4. 如何让代码实现C++

    其实本来就知道 但是主要突然忘了去怎样实现C++代码  ,所以写个笔记记忆一下 让代码实现C++ 只需要修改.m文件为 .mm  就可以了  突然是不是很像打脸. 不过希望能给不知道的小伙伴一点帮助哦 ...

  5. HDU1568

    Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. ZK 长时操作带进度条

    LongProcess.zul: <?xml version="1.0" encoding="UTF-8"?> <window id=&quo ...

  7. 图片懒加载插件lazyload使用方法

    图片懒加载插件lazyload使用方法 一.如何使用: Lazy Load 依赖于 jQuery.引入文件 <script type="text/javascript" sr ...

  8. log4net 配置应用

    (一). WinForm 或者 WPF 中的配置和应用 <?xml version="1.0" encoding="utf-8" ?> <co ...

  9. 测试常用SQL注入语句大全

    转载自Cracer,标题:<渗透常用SQL注入语句大全>,链接http://www.xxxx.com/?p=2226 1.判断有无注入点 整形参数判断 1.直接加' 2.and 1=1 3 ...

  10. 64位虚拟机安装64位ubuntu出现问题

    virtualbox 出现this kernel requires an an x86-64 cpu 错误 如题,但是主机是win8 64位,使用virtualbox安装ubuntu-12.04.3- ...