第一步:生成ssl certficate文件。首先当然安装正常输入百度快速排名软件丿金手指排名可靠安装正常输入然后:
sudo apache2-ssl-certificate
一些问题需要回答apache2-ssl-certificate的执行期间如下。注意如果默认值在[]你想离开这个空白您可以输入英语时期”。“:
国家名称(2字母代码)[g]:我们州或省的名字(全名)[状态]:。地区名称(如城市)[]:组织名称(如公司;推荐)[]:。组织单元名称(例如部分)[]:。服务器名称(如。ssl.domain.tld;需要! ! !)[]:[]localhost电子邮件地址:fwolf@mail.com
步骤2:启用ssl mod
sudo a2enmod ssl
还是
:/ etc /输入/ mods-enabled $ sudo ln - s / mods-available / ssl。conf ssl。相依:/ etc /输入/ mods-enabled $ sudo ln - s / mods-available / ssl。负载ssl.load
步骤3:添加监听的端口配置虚拟主机添加端口:添加一行在/etc/apache2/ports. 443年“听”参看“很明显如果你想使用ssl为默认端口80你可以省略这一步在后续配置略有调整。
在配置文件中配置apache的虚拟主机添加SSL的定义如:
服务器Fwolf ServerName SSLEngine在SSLCertificateFile /etc/apache2/ssl/apache.pem DirectoryIndex指数。php指数。html index . html。var
然后重新启动apache您可以使用HTTPs访问该网站。
如果你想配置默认端口80上使用https你呢?t ports.conf需要添加443端口。其次你呢?t需要:443在配置虚拟主机但即便如此配置完成后使用配置的网站时仍然会提示您:
错误请求浏览器发送一个请求服务器无法理解。原因:你说普通HTTP支持ssl的服务器端口。而不是使用HTTPS计划访问这个URL请。提示:
这是由于使用http协议访问https端口。最简单的解决方案是使用它。然而通过修改apache配置http访问端口80是re - https端口443访问指向的效果会更好像以下配置:
NameVirtualHost *: 80永久重定向/ NameVirtualHost *: 443服务器Fwolf ServerName SSLEngine在SSLCertificateFile /etc/apache2/ssl/apache.pem
通过这种方式所有的http访问将自动重定向到https访问但如果你在外部网络只能打开一个端口它会更麻烦。同时https只能包含一个网站(多个站点不能被ServerName)。
如果http和https协议可以绑定到相同的端口同时似乎更方便用户访问但是很多地方说这是不可能的和加密和明文协议不能同时存在于相同的端口这里有一个讨论出一个解决方案。虽然我的实验不成功我仍然把代码感兴趣的朋友们继续研究。
RewriteEngine RewriteCond % ! =在RewriteRule
/(. *)美元(R =永久)
一个小问题:pem文件我怎么生成的有效期只有一个月?这是默认的吗?pem文件到期后会发生什么?
更新@ 20070126
默认情况下生成的pem文件确实是唯一的有效期为一个月。过期后它仍然可以被使用但会有一个确认提示在客户端证书是无效的所以要记住使用天x参数指定在生成证书有效期如十年什么的。
sudo apache2-ssl-certificate力天3650
(当pem文件已经存在您需要使用?力参数指定覆盖)
参考:需要输入SSL howto输入SSL你说普通HTTP支持SSL的服务器端口。吗?请帮助!
更新@ 2007-07-31
{(HTTPS转换)教给你如何配置Apache的ssl安全链接}