<?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>李保存 &#187; tomcat</title>
	<atom:link href="http://libaocun.com/tag/tomcat/feed" rel="self" type="application/rss+xml" />
	<link>http://libaocun.com</link>
	<description>Think globally, act locally.</description>
	<lastBuildDate>Wed, 01 Sep 2010 10:38:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tomcat 下配置 HTTPS 数字证书</title>
		<link>http://libaocun.com/setup-https-ssl-in-tomcat</link>
		<comments>http://libaocun.com/setup-https-ssl-in-tomcat#comments</comments>
		<pubDate>Sat, 20 Mar 2010 12:18:25 +0000</pubDate>
		<dc:creator>lennydou</dc:creator>
				<category><![CDATA[Chinese - 中文]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[keytool]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://balionweb.com/?p=399</guid>
		<description><![CDATA[
在Tomcat下配置HTTPS的证书, 用户第一次访问需要下载安装证书,然后以后访问就可以以安全连接的方式访问了.配置过程首先需要使用JDK自带的keytool来生成一个keystore文件,然后从keystore文件导出一个certreq文件,然后使用该文件到www.freeca.cn 生成一个证书文件,再把该证书文件导入JVM就OK了.
具体配置过程如下:
( 我的参数如下: IP地址192.168.2.101，用户名是lenny，密码是123456，组织都是buaa，城市是Beijing，使用的操作系统是win7 )
1. 打开 cmd ，生成keystore文件lenny
keytool -genkey -alias lenny -keyalg RSA  -keystore C:\lenny -validity 36500 -keysize 512
其中lenny是别名，可以随便取；-keyalg RSA是加密算法；-keystore C:\lenny 是生成的文件(在C盘下)；       -validity 36500是有效期为10年；-keysize 512生成的密钥是512位的。
( 注意: 填写具体信息时,&#8221;名字和姓氏&#8221;一定是你的域名或IP地址,比如我在实验室没有域名,IP地址为192.168.2.101,所以我的&#8221;名字和姓氏&#8221;填写的是192.168.2.101,所以实验室的其他电脑也可以使用https访问我的Web应用程序  )
 
2. 使用 keytool -certreq 命令生成certreq文件 C:\serverreq
keytool -certreq -keystore c:\lenny -alias lenny -file c:\serverreq  
3. 从C:\lenny.文件中生成了CSR文件C:\serverreq文件, 然后使用notepad++打开c:\serverreq文件。把里面的内容复制出来，我的文件serverreq内容大概是
&#8212;&#8211;BEGIN NEW CERTIFICATE REQUEST&#8212;&#8211;
MIIBITCBzAIBADBnMQswCQYDVQQGEwJjbjEQMA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVp
amluZzEPMA0GA1UEChMGYmVlbHVuMQ8wDQYDVQQLEwZiZWVsdW4xEjAQBgNVBAMTCWxvY2FsaG9z
dDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCYIMDa/LxbGBbdL3jEa8zMzBMKQdtNVib0rO4rVz4J
FiDfZzpsMRPaCCNR7dMN92da/hnnhrYbMQTknrMlj6dxAgMBAAGgADANBgkqhkiG9w0BAQUFAANB
AGUFd9d9FHNH6oFLMmL6s5RBW7tVa4v8j4pS5vQNGE/4DFbRv+MyyVyZvNcetlNaLjuFcyoN7PB8
N9L33Y/D9to=
&#8212;&#8211;END NEW CERTIFICATE REQUEST&#8212;&#8211;
然后打开 http://www.freeca.cn 网站,然后在申请证书Tab里面选择 CSR 申请方式，把上述内容粘贴到文本框中，然后验证 CSR,网站会让你选择一个邮箱，然后会把内容发到你邮箱里。第一封邮件是让你确认你要申请数字证书，确认后会收到第二封邮件，把里面的内容拷贝到记事本，然后保存并把后缀名改成 .cer。我取得名字是lenny.cer。
 
4. 把之前生成的C:\lenny 中的密码信息导入到 C:\lenny.cer文件中
keytool -export [...]]]></description>
			<content:encoded><![CDATA[<div style="line-height: 160%;font-size: 14px">
<p>在Tomcat下配置HTTPS的证书, 用户第一次访问需要下载安装证书,然后以后访问就可以以安全连接的方式访问了.配置过程首先需要使用JDK自带的keytool来生成一个keystore文件,然后从keystore文件导出一个certreq文件,然后使用该文件到www.freeca.cn 生成一个证书文件,再把该证书文件导入JVM就OK了.</p>
<p>具体配置过程如下:</p>
<p>( 我的参数如下: IP地址192.168.2.101，用户名是lenny，密码是123456，组织都是buaa，城市是Beijing，使用的操作系统是win7 )</p>
<p>1. 打开 cmd ，生成keystore文件lenny</p>
<p><span style="color: #009900">keytool -genkey -alias lenny -keyalg RSA  -keystore C:\lenny -validity 36500 -keysize 512</span></p>
<p>其中lenny是别名，可以随便取；-keyalg RSA是加密算法；-keystore C:\lenny 是生成的文件(在C盘下)；       -validity 36500是有效期为10年；-keysize 512生成的密钥是512位的。</p>
<p><span style="color: #cc0000">( 注意: 填写具体信息时,&#8221;名字和姓氏&#8221;一定是你的域名或IP地址,比如我在实验室没有域名,IP地址为192.168.2.101,所以我的&#8221;名字和姓氏&#8221;填写的是192.168.2.101,所以实验室的其他电脑也可以使用https访问我的Web应用程序  )</span></p>
<p> </p>
<p>2. 使用 keytool -certreq 命令生成certreq文件 C:\serverreq</p>
<p><span style="color: #009900">keytool -certreq -keystore c:\lenny -alias lenny -file c:\serverreq </span> </p>
<p>3. 从C:\lenny.文件中生成了CSR文件C:\serverreq文件, 然后使用notepad++打开c:\serverreq文件。把里面的内容复制出来，我的文件serverreq内容大概是</p>
<p><span style="color: #009900">&#8212;&#8211;BEGIN NEW CERTIFICATE REQUEST&#8212;&#8211;<br />
MIIBITCBzAIBADBnMQswCQYDVQQGEwJjbjEQMA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVp<br />
amluZzEPMA0GA1UEChMGYmVlbHVuMQ8wDQYDVQQLEwZiZWVsdW4xEjAQBgNVBAMTCWxvY2FsaG9z<br />
dDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCYIMDa/LxbGBbdL3jEa8zMzBMKQdtNVib0rO4rVz4J<br />
FiDfZzpsMRPaCCNR7dMN92da/hnnhrYbMQTknrMlj6dxAgMBAAGgADANBgkqhkiG9w0BAQUFAANB<br />
AGUFd9d9FHNH6oFLMmL6s5RBW7tVa4v8j4pS5vQNGE/4DFbRv+MyyVyZvNcetlNaLjuFcyoN7PB8<br />
N9L33Y/D9to=<br />
&#8212;&#8211;END NEW CERTIFICATE REQUEST&#8212;&#8211;</span></p>
<p>然后打开 http://<a href="http://www.freeca.cn/">www.freeca.cn</a> 网站,然后在申请证书Tab里面选择 CSR 申请方式，把上述内容粘贴到文本框中，然后验证 CSR,网站会让你选择一个邮箱，然后会把内容发到你邮箱里。第一封邮件是让你确认你要申请数字证书，确认后会收到第二封邮件，把里面的内容拷贝到记事本，然后保存并把后缀名改成 .cer。我取得名字是lenny.cer。</p>
<p> </p>
<p>4. 把之前生成的C:\lenny 中的密码信息导入到 C:\lenny.cer文件中</p>
<p><span style="color: #006600">keytool -export -keystore c:\lenny -alias lenny -file C:\lenny.cer</span></p>
<p> </p>
<p>5. 把从邮箱中拷贝出的文字生成的C:\lenny.cer文件导入到JVM。导入的方法如下：</p>
<p><span style="color: #009900">cd C:\Program Files\Java\jdk1.7.0\jre\lib\</span></p>
<p><span style="color: #009900">keytool -import -keystore .\security\cacerts -alias lenny -file c:\lenny.cer</span></p>
<p><span style="color: #cc0000"> ( 切记: 这一步需要输入密码,这个密码是 changeit,之前的密码都是创建keystore时的密码123456 )</span></p>
<p> </p>
<p>6. 然后设置Tomcat根目录下面的/conf/server.xml，然后修改为</p>
<p><span style="color: #009900">&lt;Connector protocol=&#8221;org.apache.coyote.http11.Http11Protocol&#8221;<br />
           port=&#8221;8443&#8243; minSpareThreads=&#8221;5&#8243; maxSpareThreads=&#8221;75&#8243;<br />
           enableLookups=&#8221;true&#8221; disableUploadTimeout=&#8221;true&#8221;<br />
           acceptCount=&#8221;100&#8243;  maxThreads=&#8221;200&#8243;<br />
           scheme=&#8221;https&#8221; secure=&#8221;true&#8221; SSLEnabled=&#8221;true&#8221;<br />
           keystoreFile=&#8221;C:\lenny&#8221; keystorePass=&#8221;123456&#8243;<br />
           clientAuth=&#8221;false&#8221; sslProtocol=&#8221;TLS&#8221;/&gt;</span></p>
<p> </p>
<p>7. 然后在网页里输入<a href="https://192.168.2.101:8080/">https://192.168.2.101:8080/</a> 就可以访问了。第一次访问的时候，还会弹出Certificate Error页面。这是可以安装证书，然后以后访问就可以使用安全连接的方式了。</p>
<p><span style="color: #cc0000"> ( 注意: 浏览器访问https时,第一次需要安装证书,记得把证书安装到Trusted Root(根)位置 )</span></p>
<p> </p></div>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/setup-https-ssl-in-tomcat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tomcat6下配置HTTPS</title>
		<link>http://libaocun.com/configure-https-in-tomcat6</link>
		<comments>http://libaocun.com/configure-https-in-tomcat6#comments</comments>
		<pubDate>Sat, 27 Feb 2010 15:16:08 +0000</pubDate>
		<dc:creator>lennydou</dc:creator>
				<category><![CDATA[Chinese - 中文]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[keytool]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://balionweb.com/?p=388</guid>
		<description><![CDATA[我使用的JDK版本为JDK7，使用的的Tomcat版本为6.0.24；配置Tomcat下的HTTPS其实很简单，只需要完成两步工作就可以了；操作系统为Windows 7。
一、生成“服务器证书文件”
我把生成的“服务器证书文件”取名为tomcat.key（也可以取成abc.keystore，随自己喜欢就好）。简单起见，我把tomcat.key放在C盘根目录下面（我的配置环境为windows，linux类似）。
首先使用JDK自带的工具keytool生成一个“服务器证书”，取名为tomcat.key。

C:\Users\Administrator&#62;keytool -genkey -alias tomcat -keyalg RSA -keystore C:\to
mcat.key
输入keystore密码：
再次输入新密码:
您的名字与姓氏是什么？
[Unknown]：  beelun
您的组织单位名称是什么？
[Unknown]：  beelun
您的组织名称是什么？
[Unknown]：  beelun
您所在的城市或区域名称是什么？
[Unknown]：  beijing
您所在的州或省份名称是什么？
[Unknown]：  beijing
该单位的两字母国家代码是什么
[Unknown]：  cn
CN=beelun, OU=beelun, O=beelun, L=beijing, ST=beijing, C=cn 正确吗？
[否]：  y
输入&#60;tomcat&#62;的主密码
（如果和 keystore 密码相同，按回车）：
C:\Users\Administrator&#62;jdk -version
&#8216;jdk&#8217; is not recognized as an internal or external command,
operable program or batch file.
C:\Users\Administrator&#62;java -version
java version &#8220;1.7.0-ea&#8221;
Java(TM) SE Runtime Environment (build 1.7.0-ea-b23)
Java HotSpot(TM) Client VM (build 12.0-b01, mixed mode, sharing)
C:\Users\Administrator&#62;

按照提示，输入密码。我输入的密码为123456（注意：此密码在配置server.xml时需要）。其他信息按照提示输入就可以，在输入tomcat主密码时，我直接键入回车，使其和keystore的密码保持一致。
此时，在C盘下面就生成了一个PCKS1.2格式的数字证书文件C:\tomcat.key。
二、配置server.xml文件
修改tomcat\conf目录下面的server.xml文件，添加一项：

&#60;Connector protocol=&#8221;org.apache.coyote.http11.Http11Protocol&#8221;
port=&#8221;8443&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p>我使用的JDK版本为JDK7，使用的的Tomcat版本为6.0.24；配置Tomcat下的HTTPS其实很简单，只需要完成两步工作就可以了；操作系统为Windows 7。</p>
<p>一、生成“服务器证书文件”</p>
<p>我把生成的“服务器证书文件”取名为tomcat.key（也可以取成abc.keystore，随自己喜欢就好）。简单起见，我把tomcat.key放在C盘根目录下面（我的配置环境为windows，linux类似）。<br />
首先使用JDK自带的工具keytool生成一个“服务器证书”，取名为tomcat.key。</p>
<blockquote><p>
C:\Users\Administrator&gt;keytool -genkey -alias tomcat -keyalg RSA -keystore C:\to<br />
mcat.key<br />
输入keystore密码：<br />
再次输入新密码:<br />
您的名字与姓氏是什么？<br />
[Unknown]：  beelun<br />
您的组织单位名称是什么？<br />
[Unknown]：  beelun<br />
您的组织名称是什么？<br />
[Unknown]：  beelun<br />
您所在的城市或区域名称是什么？<br />
[Unknown]：  beijing<br />
您所在的州或省份名称是什么？<br />
[Unknown]：  beijing<br />
该单位的两字母国家代码是什么<br />
[Unknown]：  cn<br />
CN=beelun, OU=beelun, O=beelun, L=beijing, ST=beijing, C=cn 正确吗？<br />
[否]：  y</p>
<p>输入&lt;tomcat&gt;的主密码<br />
（如果和 keystore 密码相同，按回车）：</p>
<p>C:\Users\Administrator&gt;jdk -version<br />
&#8216;jdk&#8217; is not recognized as an internal or external command,<br />
operable program or batch file.</p>
<p>C:\Users\Administrator&gt;java -version<br />
java version &#8220;1.7.0-ea&#8221;<br />
Java(TM) SE Runtime Environment (build 1.7.0-ea-b23)<br />
Java HotSpot(TM) Client VM (build 12.0-b01, mixed mode, sharing)</p>
<p>C:\Users\Administrator&gt;
</p></blockquote>
<p>按照提示，输入密码。我输入的密码为123456（注意：此密码在配置server.xml时需要）。其他信息按照提示输入就可以，在输入tomcat主密码时，我直接键入回车，使其和keystore的密码保持一致。</p>
<p>此时，在C盘下面就生成了一个PCKS1.2格式的数字证书文件C:\tomcat.key。</p>
<p>二、配置server.xml文件</p>
<p>修改tomcat\conf目录下面的server.xml文件，添加一项：</p>
<blockquote><p>
&lt;Connector protocol=&#8221;org.apache.coyote.http11.Http11Protocol&#8221;<br />
port=&#8221;8443&#8243; minSpareThreads=&#8221;5&#8243; maxSpareThreads=&#8221;75&#8243;<br />
enableLookups=&#8221;true&#8221; disableUploadTimeout=&#8221;true&#8221;<br />
acceptCount=&#8221;100&#8243;  maxThreads=&#8221;200&#8243;<br />
scheme=&#8221;https&#8221; secure=&#8221;true&#8221; SSLEnabled=&#8221;true&#8221;<br />
keystoreFile=&#8221;C:\tomcat.key&#8221; keystorePass=&#8221;123456&#8243;<br />
clientAuth=&#8221;false&#8221; sslProtocol=&#8221;TLS&#8221;/&gt;
</p></blockquote>
<p>需要注意一行“keystoreFile=&#8221;C:\tomcat.key&#8221; keystorePass=&#8221;123456&#8243;”，其中keystorefile是你生成的“服务器证书文件”，keystorePass是该服务证书文件的密码。</p>
<p>三、在浏览器地址栏里输入 https://localhost:8443/ 检验一下就OK了。</p>
<p><strong>Update</strong><br />
From <a href="http://forums.java.net/jive/message.jspa?messageID=282519">http://forums.java.net/jive/message.jspa?messageID=282519</a>：</p>
<blockquote><p>
I found some hints on the web that<br />
CN should be the fully-qualified domain name of your server host</p>
<p>I replaced &#8220;localhost&#8221; with &#8220;pc_name&#8221;.&#8221;domain_name&#8221;<br />
and it worked. They (pc_name and domain_name) are concatenated by dot.</p>
<p>Note:<br />
My &#8220;domain_name&#8221; contains dots too.</p>
<p>I tested certificates on the same PC, but maybe this help you. </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/configure-https-in-tomcat6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
