黑帽SEO

顺时SEO建站:站点HTTPS改造之配置Apache的ssl安全链接

顺时SEO建站分享最新站点HTTPS改造之配置Apache的ssl安全链接教程

第一步:生成sslcertficate文件首先当然是正常安装apache2了,然后:

sudoapache2-ssl-certificate

生成一个1024位的RSA私钥,并保存为/etc/apache2/ssl/apache.pem,如果你已经有了CA证书,应该也是可以拿过来直接使用,或者用来生成这个私钥的(这应该属于另外一个话题了,我也没有用过)。

apache2-ssl-certificate执行过程中要回答一些问题,如下,注意如果[]里已经给出了默认值,而你又想把这项置空的话,可以输入英文句号“.”:

CountryName(2lettercode)[GB]:USStateorProvinceName(fullname)[Some-State]:.LocalityName(eg,city)[]:OrganizationName(eg,company;recommended)[]:.OrganizationalUnitName(eg,section)[]:.servername(eg.ssl.domain.tld;required!!!)[]:localhostEmailAddress[]:fwolf@mail.com

一般来说,servername和实际的网站域名还是保持一致比较方便。

第二步:启用sslmod

sudoa2enmodssl

或者

:/etc/apache2/mods-enabled$sudoln-s/mods-available/ssl.confssl.conf:/etc/apache2/mods-enabled$sudoln-s/mods-available/ssl.loadssl.load

第三步:添加监听端口,配置虚拟主机添加端口:在/etc/apache2/ports.conf中增加一行“Listen443”,显然,如果你想让默认的80端口就使用ssl的话,就可以省略这一步了,并在后面的配置中略微调整。

在apache虚拟主机的配置文件conf中,段,添加SSL的定义,比如:

ServerAdminFwolfServerNamewww.fwolf.comSSLEngineOnSSLCertificateFile/etc/apache2/ssl/apache.pemDirectoryIndexindex.phpindex.htmlindex.html.var

然后重启apache,就能够使用https访问网站了。

如果想配置成80端口默认就使用https,首先不需要在ports.conf中添加443端口的监听了,其次是在配置VirtualHost的时候也不用带上:443了,但即使这样,配置完成后使用http://www.shunshiseo.com访问配置好的网站时,还是会提示:

BadRequestYourbrowsersentarequestthatthisservercouldnotunderstand.Reason:You’respeakingplainHTTPtoanSSL-enabledserverport.InsteadusetheHTTPSschemetoaccessthisURL,please.Hint:https://www.fwolf.com/

这是由于使用http协议去访问一个https的端口造成的,最简单的解决方法是使用https://www.shunshiseo.com:80/来替代,不过,通过修改apache配置,把到80端口的http访问重定向到443端口的https访问效果会更好一些,就像下面的配置:

NameVirtualHost*:80Redirectpermanent/https://localhost/NameVirtualHost*:443ServerAdminFwolfServerNamewww.fwolf.comSSLEngineOnSSLCertificateFile/etc/apache2/ssl/apache.pem…

这样所有http访问就自动被重定向到https访问上了,不过如果你只能在外网开一个端口的话就比较麻烦了,同时https也只能包含一个站点(无法通过ServerName辨识多个站点)。

如果能够把http和https协议同时绑定到一个端口上,用户访问的时候似乎就更方便了,不过很多地方都说这是不可能的,加密与明文协议不可能同时存在于一个端口上,这里有个讨论给出了一种方案,虽然经过我的实验并不成功,还是把代码贴出来,供有兴趣的朋友继续研究。

RewriteEngineonRewriteCond%{HTTPS}!=onRewriteRule^/(.*)$https://%{SERVER_NAME}/$1[R=permanent]

一个小问题:我生成的pem文件怎么有效期都只有一个月?难道这是默认的?pem文件到期之后会发生什么事情呢?

update@20070126

默认生成的pem文件确实只有一个月的有效期,过期之后倒是还能使用,只是在客户端会有一个提示证书无效的确认,所以在生成证书的时候,记得用-dayx参数指定有效期限,比如十年什么的。

sudoapache2-ssl-certificate–force-days3650

(当pem文件已经存在的时候,需要使用–force参数指定覆盖)

参考:NeedApache2SSLhowtoApache2SSLYou’respeakingplainHTTPtoanSSL-enabledserverport.–HELPPLEASE!

Update@2007-07-31

Ubuntu7.04feisty中没有apache2-ssl-cerfiticate这个命令,需要自己下载一个包,然后解压,把里面的ssleay.cnf拷贝到/usr/share/apache2/,然后就可以执行解压的另外一个可执行文件apache2-ssl-certificate来生成证书了。

以上就是顺时SEO建站团队为大家分享的站点https改造指南教程了,希望对大家有所帮助!

本文链接:http://www.heimaoke.com/zhanqun/485.html
赞 ()