<?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>Behind the Code &#187; cherrypy</title>
	<atom:link href="http://yinwm.com/tag/cherrypy/feed/" rel="self" type="application/rss+xml" />
	<link>http://yinwm.com</link>
	<description>Just Do It</description>
	<lastBuildDate>Wed, 04 Jan 2012 03:54:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>网络安全通讯（4）&#8212;-为Python Webserver添加HTTPS支持</title>
		<link>http://yinwm.com/2008/03/%e7%bd%91%e7%bb%9c%e5%ae%89%e5%85%a8%e9%80%9a%e8%ae%af%ef%bc%884%ef%bc%89-%e4%b8%bapython-webserver%e6%b7%bb%e5%8a%a0https%e6%94%af%e6%8c%81/</link>
		<comments>http://yinwm.com/2008/03/%e7%bd%91%e7%bb%9c%e5%ae%89%e5%85%a8%e9%80%9a%e8%ae%af%ef%bc%884%ef%bc%89-%e4%b8%bapython-webserver%e6%b7%bb%e5%8a%a0https%e6%94%af%e6%8c%81/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 10:22:00 +0000</pubDate>
		<dc:creator>yinwm</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[cherrypy]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://yinwm.cn/wordpress/?p=44</guid>
		<description><![CDATA[前面我们说的都是为Apache服务器添加HTTPS的支持，今天我们讨论一下为Python的Webserver添加HTTPS的支持。 Python的Webserver基本上都是遵循Python的WSGI标准，包括我使用的CherryPy和webpy。在这两个Webserver的源代码中都有一个package叫做wsgiserver，里面只有__init__.py。这两个Webserver的wsgiserver内容几乎一样，而且明显有CherryPy的痕迹，看来CherryPy可能是WSGI标准的一个（半）官方实现，就好像Tomcat至于Servlet。 WSGI标准写的很是笼统，他只是说可以支持SSL，无他。只好阅读源代码，代码里面写的倒不是很差。需要同时给出ssl需要的服务器端的私钥和证书，分别使用如下两个变量存放。ssl_certificate: the filename of the server SSL certificate.&#160;&#160;&#160;&#160;&#160; 服务器端的SSL证书ssl_privatekey: the filename of the server&#8217;s private key file.&#160;&#160;&#160; 服务器端的私钥我们只要遵循每个服务器的文档设置上就可以了。我们以CherryPy为例。（好吧，我说实话，我只会这个。） 在CherryPy的配置文件里面，可以设置这两个变量，分别指向文件系统的文件。[global]server.socket_port : 8081server.socket_host : &#8220;0.0.0.0&#8243;server.ssl_certificate : &#8220;conf/cert/server.crt&#8221;server.ssl_private_key : &#8220;conf/cert/server.key&#8221;这样，当我们重新启动的时候，我们的webserver就已经开始支持HTTPS了。如果这两个变量有一个没有设置的话，HTTPS就不会起作用。 这里我不得不说一下，CherryPy的文档已经算是不错的了，但是还是不行，只有在ServerAPI里面稍微提及了一下这两个变量而已。想要完整的搞明白，就只能祭出hack源代码大发，还得有连蒙带唬的功能。 至于webpy，就最好看看他的文档了。]]></description>
			<content:encoded><![CDATA[<p>前面我们说的都是为Apache服务器添加HTTPS的支持，今天我们讨论一下为Python的Webserver添加HTTPS的支持。</p>
<p>Python的Webserver基本上都是遵循Python的<a href="http://www.python.org/dev/peps/pep-0333/" target="_blank">WSGI标准</a>，包括我使用的CherryPy和webpy。在这两个Webserver的源代码中都有一个package叫做wsgiserver，里面只有__init__.py。这两个Webserver的wsgiserver内容几乎一样，而且明显有CherryPy的痕迹，看来CherryPy可能是WSGI标准的一个（半）官方实现，就好像Tomcat至于Servlet。</p>
<p>WSGI标准写的很是笼统，他只是说可以支持SSL，无他。只好阅读源代码，代码里面写的倒不是很差。需要同时给出ssl需要的服务器端的私钥和证书，分别使用如下两个变量存放。<br />ssl_certificate: the filename of the server SSL certificate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 服务器端的SSL证书<br />ssl_privatekey: the filename of the server&#8217;s private key file.&nbsp;&nbsp;&nbsp; 服务器端的私钥<br />我们只要遵循每个服务器的文档设置上就可以了。我们以CherryPy为例。（好吧，我说实话，我只会这个。）</p>
<p>在CherryPy的配置文件里面，可以设置这两个变量，分别指向文件系统的文件。<br />[global]<br />server.socket_port : 8081<br />server.socket_host : &#8220;0.0.0.0&#8243;<br />server.ssl_certificate : &#8220;conf/cert/server.crt&#8221;<br />server.ssl_private_key : &#8220;conf/cert/server.key&#8221;<br />这样，当我们重新启动的时候，我们的webserver就已经开始支持HTTPS了。如果这两个变量有一个没有设置的话，HTTPS就不会起作用。</p>
<p>这里我不得不说一下，CherryPy的文档已经算是不错的了，但是还是不行，只有在ServerAPI里面稍微提及了一下这两个变量而已。想要完整的搞明白，就只能祭出hack源代码大发，还得有连蒙带唬的功能。</p>
<p>至于webpy，就最好看看他的文档了。</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://yinwm.com/2008/03/%e7%bd%91%e7%bb%9c%e5%ae%89%e5%85%a8%e9%80%9a%e8%ae%af%ef%bc%884%ef%bc%89-%e4%b8%bapython-webserver%e6%b7%bb%e5%8a%a0https%e6%94%af%e6%8c%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

