<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Computer, Electron and Technology &#187; ssl</title>
	<atom:link href="http://www.donevii.com/post/tag/ssl/feed" rel="self" type="application/rss+xml" />
	<link>http://www.donevii.com</link>
	<description>关注技术、移动互联网以及一切 GEEK &#38; NERD 的事情</description>
	<lastBuildDate>Wed, 21 Dec 2011 10:49:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>OpenSSL相关命令（for Linux）详细介绍</title>
		<link>http://www.donevii.com/post/347.html</link>
		<comments>http://www.donevii.com/post/347.html#comments</comments>
		<pubDate>Fri, 21 Sep 2007 08:19:49 +0000</pubDate>
		<dc:creator>dengwei</dc:creator>
				<category><![CDATA[doc]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.donevii.com/?p=347</guid>
		<description><![CDATA[转至: http://blog.ixpub.net/8400463 加密算法： 对称加密算法： DES、IDEA、RC2、RC4、AES、Skipjack &#8230;&#8230; 非对称加密算法： RSA、DSA、DiffieHellman、PKCS、PGP &#8230;&#8230; 单向的HASH算法属于报文摘要算法... ]]></description>
			<content:encoded><![CDATA[<p>转至: http://<a href="http://www.donevii.com/post/tag/blog" class="st_tag internal_tag" rel="tag" title="Posts tagged with blog">blog</a>.ixpub.net/8400463</p>
<p>加密算法：</p>
<p>对称加密算法：</p>
<p>DES、IDEA、RC2、RC4、AES、Skipjack &#8230;&#8230;</p>
<p>非对称加密算法：</p>
<p>RSA、DSA、DiffieHellman、PKCS、PGP &#8230;&#8230;</p>
<p>单向的HASH算法属于报文摘要算法，虽然有些也出自OpenSSL库。<br />
命令操作：</p>
<p>1、生成普通私钥：<br />
[weigw@TEST src]$ openssl genrsa -out privatekey.key 1024</p>
<p>Generating RSA private key, 1024 bit long modulus &#8230;.++++++ &#8230;&#8230;.++++++ e is 65537 (0&#215;10001)</p>
<p>2、生成带加密口令的密钥：</p>
<p>[weigw@TEST src]$ openssl genrsa -des3 -out privatekey.key 1024</p>
<p>Generating RSA private key, 1024 bit long modulus &#8230;&#8230;&#8230;&#8230;++++++ &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;++++++ e is 65537 (0&#215;10001) Enter pass phrase for privatekey.key: Verifying &#8211; Enter pass phrase for privatekey.key:</p>
<p>在生成带加密口令的密钥时需要自己去输入密码。对于为密钥加密现在提供了一下几种算法：<br />
-des encrypt the generated key with DES in cbc mode</p>
<p>-des3 encrypt the generated key with DES in ede cbc mode (168 bit key)</p>
<p>-aes128, -aes192, -aes256 encrypt PEM output with cbc aes</p>
<p>去除密钥的口令：<br />
[weigw@TEST src]$ openssl rsa -in privatekey.key -out</p>
<p>privatekey.key Enter pass phrase for privatekey.key: writing RSA key</p>
<p>通过生成的私钥去生成证书：</p>
<p>[weigw@TEST src]$ openssl req -new -x509 -key privatekey.key -out cacert.crt -days 1095</p>
<p>You are about to be asked to enter information that will be incorporated into your certificate request.</p>
<p>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 &#8216;.&#8217;, the field will be left blank.</p>
<p>&#8212;&#8211;</p>
<p>Country Name (2 letter code) [GB]:CN</p>
<p>State or Province Name (full name) [Berkshire]:beijing</p>
<p>Locality Name (eg, city) [Newbury]:beijing</p>
<p>Organization Name (eg, company) [My Company Ltd]:wondersoft</p>
<p>Organizational Unit Name (eg, section) []:develop</p>
<p>Common Name (eg, your name or your <a href="http://www.donevii.com/post/tag/server" class="st_tag internal_tag" rel="tag" title="Posts tagged with server">server</a>&#8217;s hostname) []:WeiGW</p>
<p>Email Address []:weigongwan@sina.com</p>
<p>在生成证书的时候需要按照提示输入一些个人信息。</p>
<p>通过私钥生成公钥：</p>
<p>[weigw@TEST src]$ openssl rsa -in privatekey.key -pubout -out pubkey.key writing RSA key</p>
<p>格式转换：（证书、私钥、公钥）（PEM &lt;&#8212;&#8211;&gt;DER）</p>
<p>[weigw@TEST src]$ openssl x509 -in cacert.crt -inform. PEM -out cacert.der -outform. DER</p>
<p>[weigw@TEST src]$</p>
<p>[weigw@TEST src]$ openssl rsa -in privatekey.key -inform. PEM -out privatekey.der -outform. DER</p>
<p>writing RSA key</p>
<p>[weigw@TEST src]$ openssl rsa -pubin -in pubkey.key -inform. PEM -pubout -out pubkey.der -outform. DER</p>
<p>writing RSA key</p>
<p>从DER格式转换成PEM格式一样，就是把inform的格式改成DERoutform的格式改成PEM即可。</p>
<p>下面是一个服务器和客户端认证的证书、私钥生成方法：（server.crt、client.crt、ca.crt）</p>
<p>第一步： 生成私钥</p>
<p>[weigw@TEST bin]$ openssl genrsa -out server.key 1024</p>
<p>Generating RSA private key, 1024 bit long modulus .++++++ ..<br />
&#8230;&#8230;&#8230;++++++ e is 65537 (0&#215;10001)</p>
<p>[weigw@TEST bin]$ openssl genrsa -out client.key 1024</p>
<p>Generating RSA private key, 1024 bit long modulus &#8230;++++++ &#8230;&#8230;<br />
&#8230;&#8230;&#8230;.++++++ e is 65537 (0&#215;10001)</p>
<p>[weigw@TEST bin]$ openssl genrsa -out ca.key 1024</p>
<p>Generating RSA private key, 1024 bit long modulus &#8230;&#8230;.<br />
..++++++ &#8230;&#8230;&#8230;++++++ e is 65537 (0&#215;10001)</p>
<p>[weigw@TEST bin]$</p>
<p>第三步： 申请证书（为请求文件签名）</p>
<p>[weigw@TEST bin]$ openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key</p>
<p>[weigw@TEST bin]$ openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key</p>
<p>如果在这步出现错误信息：</p>
<p>[weigw@TEST bin]$ openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key</p>
<p>Using configuration from /usr/share/<a href="http://www.donevii.com/post/tag/ssl" class="st_tag internal_tag" rel="tag" title="Posts tagged with ssl">ssl</a>/openssl.cnf I am unable to access the ./demoCA/newcerts directory ./demoCA/newcerts: No such file or directory</p>
<p>[weigw@TEST bin]$</p>
<p>自己手动创建一个CA目录结构：<br />
[weigw@TEST bin]$ mkdir ./demoCA<br />
[weigw@TEST bin]$ mkdir demoCA/newcerts<br />
创建个空文件：<br />
[weigw@TEST bin]$ vi demoCA/index.txt<br />
向文件中写入01：<br />
[weigw@TEST bin]$ vi demoCA/serial</p>
<p>合并证书文件（crt）和私钥文件（key）：</p>
<p>[weigw@TEST bin]$ cat client.crt client.key &gt; client.pem [weigw@TEST bin]$ cat server.crt server.key &gt; server.pem</p>
<p>合并成pfx证书：</p>
<p>[weigw@TEST bin]$ openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12</p>
<p>Enter Export Password:</p>
<p>Verifying &#8211; Enter Export Password:</p>
<p>[weigw@TEST bin]$openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12<br />
Enter Export Password:<br />
Verifying &#8211; Enter Export Password:</p>
<p>文本化证书：</p>
<p>[weigw@TEST bin]$ openssl pkcs12 -in client.p12 -out client.txt Enter Import Password:</p>
<p>MAC verified OK</p>
<p>Enter PEM pass phrase: Verifying &#8211; Enter PEM pass phrase:</p>
<p>[weigw@TEST bin]$openssl pkcs12 -in server.p12 -out server.txt</p>
<p>Enter Import Password:</p>
<p>MAC verified OK</p>
<p>Enter PEM pass phrase: Verifying &#8211; Enter PEM pass phrase:</p>
<p>屏幕模式显式：（证书、私钥、公钥）</p>
<p>[weigw@TEST bin]$ openssl x509 -in client.crt -noout -text -modulus</p>
<p>[weigw@TEST bin]$ openssl rsa -in server.key -noout -text -modulus</p>
<p>[weigw@TEST bin]$ openssl rsa -in server.pub -noout -text -modulus</p>
<p>得到DH：</p>
<p>[weigw@TEST bin]$ openssl dhparam -out dh1024.pem 1024</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donevii.com/post/347.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

