zhouxin / pubhg

Unlimited private code, issue and wiki hosts.

= HTTPS 的合法证书申请、部署及既有项目修改 =

== Why https ==

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了)。即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。

== https的合法证书申请 ==

若果使用自己生成的证书,浏览器会提示警告信息,用hg客户端也会提示警告信息,只能通过添加--insecure参数使用。

合法的证书申请,一般申请需要收费,比如icbc使用的 http://www.verisign.com/, 或者最大的域名服务商 http://godaddy.com; 免费证书申请可以通过 http://www.startssl.com/ 进行。 startssl 会为用户生成公钥(一般为crt文件)、私钥两个文件(一般为key文件)。为了解决ff浏览器的系人问题,还需要将startssl的ca.pam文件导入公钥文件中。 combian the crt and chain file

== nginx服务器部署 ==

http://nginx.org/en/docs/http/configuring_https_servers.html

{{{ listen 443; server_name pubhg.com; access_log /var/log/nginx/pubhg-ssl.access.log;

root /var/www;

ssl on;
ssl_certificate  pubhg/pubhg.com.chained.crt;
ssl_certificate_key  pubhg/pubhg.key;

ssl_session_cache   shared:SSL:10m;
ssl_session_timeout  5m;

ssl_protocols  SSLv3  TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers  RC4:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers   on;

}}}

== 既有项目修改 ==

现阶段合法证书之包含了对gaobo.net/trac.gaobo.net两个域名的认证,为了消除不信任证书的提示,系统code.gaobo.net 会自动转向至 gaobo.net/code/ 。需要对.hg/hgrc文件进行修改,将path路径修改如下:。

{{{ [paths] default = http://code.pubhg.com/gseducation/dev }}}

在linux下可以应用以下命令:

{{{ find -name hgrc|xargs sed -i s/https/http/ find -name hgrc|xargs sed -i s/gaobo.net/pubhg.com/ }}}

为了在使用 hg 时,没有警告提示,修改 /etc/mercurial/hgrc ,加入:

{{{ [web]

user can disable this Debian default by overriding this option in ~/.hgrc

and/or using the --insecure command line switch

cacerts = /etc/ssl/certs/ca-certificates.crt

}}}

gaobo created at 12 years ago