OpenSSL相关命令(for Linux)详细介绍

转载 2007年09月24日 16:04:00
加密算法:

  对称加密算法:

  DES、IDEA、RC2、RC4、AES、Skipjack ......

  非对称加密算法:

  RSA、DSA、DiffieHellman、PKCS、PGP ......

  单向的HASH算法属于报文摘要算法,虽然有些也出自OpenSSL库。
   
  命令操作

  1、生成普通私钥:

[weigw@TEST src]$ openssl genrsa -out privatekey.key 1024

Generating RSA private key, 1024 bit long modulus ....++++++ .......++++++ e is 65537 (0x10001)


  2、生成带加密口令的密钥:

[weigw@TEST src]$ openssl genrsa -des3 -out privatekey.key 1024

Generating RSA private key, 1024 bit long modulus ............++++++ .....................++++++ e is 65537 (0x10001) Enter pass phrase for privatekey.key: Verifying - Enter pass phrase for privatekey.key:

   
  在生成带加密口令的密钥时需要自己去输入密码。对于为密钥加密现在提供了一下几种算法:

-des encrypt the generated key with DES in cbc mode

-des3 encrypt the generated key with DES in ede cbc mode (168 bit key)

-aes128, -aes192, -aes256 encrypt PEM output with cbc aes


  去除密钥的口令:

[weigw@TEST src]$ openssl rsa -in privatekey.key -out

privatekey.key Enter pass phrase for privatekey.key: writing RSA key

 
  通过生成的私钥去生成证书:

[weigw@TEST src]$ openssl req -new -x509 -key privatekey.key -out cacert.crt -days 1095

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) [GB]:CN

State or Province Name (full name) [Berkshire]:beijing

Locality Name (eg, city) [Newbury]:beijing

Organization Name (eg, company) [My Company Ltd]:wondersoft

Organizational Unit Name (eg, section) []:develop

Common Name (eg, your name or your server's hostname) []:WeiGW

Email Address []:weigongwan@sina.com

  在生成证书的时候需要按照提示输入一些个人信息。

  通过私钥生成公钥:

[weigw@TEST src]$ openssl rsa -in privatekey.key -pubout -out pubkey.key writing RSA key


  格式转换:(证书、私钥、公钥)(PEM <----->DER)

[weigw@TEST src]$ openssl x509 -in cacert.crt -inform PEM -out cacert.der -outform DER

[weigw@TEST src]$

 

[weigw@TEST src]$ openssl rsa -in privatekey.key -inform PEM -out privatekey.der -outform DER

writing RSA key


[weigw@TEST src]$ openssl rsa -pubin -in pubkey.key -inform PEM -pubout -out pubkey.der -outform DER

writing RSA key


  从DER格式转换成PEM格式一样,就是把inform的格式改成DERoutform的格式改成PEM即可。


  下面是一个服务器和客户端认证的证书、私钥生成方法:(server.crt、client.crt、ca.crt)

  第一步: 生成私钥

 

[weigw@TEST bin]$ openssl genrsa -out server.key 1024 Generating RSA private key, 1024 bit long modulus .++++++ ...........++++++ e is 65537 (0x10001) [weigw@TEST bin]$ openssl genrsa -out client.key 1024 Generating RSA private key, 1024 bit long modulus ...++++++ ................++++++ e is 65537 (0x10001) [weigw@TEST bin]$ openssl genrsa -out ca.key 1024Generating RSA private key, 1024 bit long modulus .........++++++ .........++++++ e is 65537 (0x10001) [weigw@TEST bin]$

 

  第三步: 申请证书(为请求文件签名)

[weigw@TEST bin]$ openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

[weigw@TEST bin]$ openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key


  如果在这步出现错误信息:

[weigw@TEST bin]$ openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

Using configuration from /usr/share/ssl/openssl.cnf I am unable to access the ./demoCA/newcerts directory ./demoCA/newcerts: No such file or directory

[weigw@TEST bin]$


  自己手动创建一个CA目录结构:
  [weigw@TEST bin]$ mkdir ./demoCA
  [weigw@TEST bin]$ mkdir demoCA/newcerts
  创建个空文件:
  [weigw@TEST bin]$ vi demoCA/index.txt
  向文件中写入01:
  [weigw@TEST bin]$ vi demoCA/serial

  合并证书文件(crt)和私钥文件(key):

[weigw@TEST bin]$ cat client.crt client.key > client.pem [weigw@TEST bin]$ cat server.crt server.key > server.pem


  合并成pfx证书:

[weigw@TEST bin]$ openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

Enter Export Password:

Verifying - Enter Export Password:

[weigw@TEST bin]$openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12  
Enter Export Password:
Verifying - Enter Export Password:


  文本化证书:

[weigw@TEST bin]$ openssl pkcs12 -in client.p12 -out client.txt Enter Import Password:

MAC verified OK

Enter PEM pass phrase: Verifying - Enter PEM pass phrase:

[weigw@TEST bin]$openssl pkcs12 -in server.p12 -out server.txt

Enter Import Password:

MAC verified OK

Enter PEM pass phrase: Verifying - Enter PEM pass phrase:


  屏幕模式显式:(证书、私钥、公钥) 

[weigw@TEST bin]$ openssl x509 -in client.crt -noout -text -modulus

[weigw@TEST bin]$ openssl rsa -in server.key -noout -text -modulus

[weigw@TEST bin]$ openssl rsa -in server.pub -noout -text -modulus


  得到DH:

[weigw@TEST bin]$ openssl dhparam -out dh1024.pem 1024


 

[转]OpenSSL相关命令(for Linux)详细介绍

加密算法:  对称加密算法:  DES、IDEA、RC2、RC4、AES、Skipjack ......  非对称加密算法:  RSA、DSA、DiffieHellman、PKCS、PGP ........
  • wuhuiran
  • wuhuiran
  • 2007年09月11日 16:54
  • 738

linux下openssl命令详解

目录: 1,openssl命令总览 2,证书应用 3,RSA应用 4,SHA1 应用 5,base64应用 6,des3应用 1,OpenSSl命令总览 语法格式: open...
  • baidu_36649389
  • baidu_36649389
  • 2017年01月12日 17:31
  • 7328

linux openssl简单的介绍与实例讲解

OpenSSL简介 SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协...
  • funkri
  • funkri
  • 2013年12月24日 18:01
  • 2337

Linux中openssl命令的使用

Linux中openssl命令的使用         openssl是一个用C语言实现的SSL协议软件包,Linux可以使用openssl进行一些命令行操作,下面的三个功能是经常用到的。   1、ba...
  • yy_menghuanjie
  • yy_menghuanjie
  • 2016年07月29日 15:52
  • 670

OpenSSL相关命令(for Linux)

加密算法: 对称加密算法: DES、IDEA、RC2、RC4、AES、Skipjack ...... 非对称加密算法: RSA、DSA、DiffieHellman、...
  • goingdownba
  • goingdownba
  • 2009年09月03日 16:52
  • 1250

OpenSSL 详细介绍

 OpenSSL 详细介绍 对称加密算法     OpenSSL 一共提供了8 种对称加密算法,其中7 种是分组加密算法,仅有的一种流加密算法是RC4。这7 种分组加密算法分别是AES、DES、Blo...
  • guoliquan1
  • guoliquan1
  • 2009年10月20日 14:08
  • 2692

OpenSSL命令行在Linux下的运用

转载地址:http://blog.developers.api.sina.com.cn/?p=97 1. base64编码/解码 谈到命令行下如何发送邮件附件,很多人想起了uu...
  • s464036801
  • s464036801
  • 2012年08月01日 18:47
  • 1423

Linux下利用openssl对文件进行加密和解密

--建立文件test.txt, 特意写入中英文 # cd /tmp # echo "test测试" > test.txt --开始加密, 使用aes-128-cbc算法, 也可以使用其他算...
  • liudewen3
  • liudewen3
  • 2013年12月24日 10:44
  • 14272

Linux文件相关命令详细介绍

Linux文件相关命令详细介绍
  • leyangjun
  • leyangjun
  • 2015年04月12日 18:36
  • 387

linux 进程管理相关命令汇总

## processes 进程管理 ##ps查看当前系统执行的线程列表,进行瞬间状态,不是连续状态,连续状态需要使用top名称查看 更多常用参数请使用 man ps查看 ps ##显示所有...
  • zhongweijian
  • zhongweijian
  • 2015年06月12日 10:32
  • 2287
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenSSL相关命令(for Linux)详细介绍
举报原因:
原因补充:

(最多只允许输入30个字)