Brian F爱
从专注于角图,Web技术以yobet英雄联盟及波特兰的Node.js的Google开发人员专家中学习。
广告 ·ultimatecourses.com.
用终极课程学习角度正确的方式

在Mac YoSemite上启用HTTPS在Apache上

在此帖子中,我们将在OS X Yosemite上使用HTTP使用Apache。在上一篇文章中,我向你展示了如何创建一个自签名证书。如果您跟随,那么您在中创建了以下文件/ etc / apache2 / ssl文件夹:

  • local.example.com.crt.
  • local.example.com.key

现在,我们将通过在本地Apache Web服务器上设置HTTPS所需的步骤:

  • 加载mod_ssl扩展名
  • 包括SSL配置文件
  • 修改SSL配置文件,将我们的新虚拟主机添加到端口443
  • (可选)在我们的主机文件中指定新的测试域
  • 测试和重新启动Apache

为什么?

首先,让我们回答一个简单的问题:“为什么?”在我们迁移我们的网站以使用HTTPS的各个地方,以努力支持HTTPS。在后面的博客文章中,我将展示我们如何执行迁移到HTTPS。

使用HTTPS的真正原因是保护网络。用户和隐私的风险是今天的最高级别,我怀疑风险只会增加,而我们的用户越来越多地期望保护其隐私。

加载mod_ssl.

好的,现在我们知道为什么我们这样做,让我们潜水。首先,简单地取消了以下行httpd.conf.文件。要修改httpd.conf文件,我们将使用Nano文本编辑器。我还建议使用TextMate,然后您可以在以下命令中替换“mate”的“nano”。

我的httpd.conf文件位于:/etc/apache2/httpd.conf.

$光盘/ etc / apache2 / $苏达纳米httpd.conf.

找到以下行并取消注释它。以防你不确定,评论有一个领先的英镑/哈希符号(#) - 只需删除它。

加载mod_ssl.

包括httpd-ssl.conf文件

While we still have the httpd.conf file open, we also need to uncomment the line that includes thehttpd-ssl.conf.文件。

Include https-ssl.conf File

将virtualhost添加到httpd-ssl.conf

最后一步是配置绑定到端口443(HTTPS)的新虚拟主机。已经有一个样本httpd-ssl.conf文件中的记录。我suggest you first remove it, or comment it all out, so that you can just paste in the necessary code at the bottom of the file.

My httpd-ssl.conf file is located at:/etc/apache2/conf/httpd-ssl.conf.conf.conf.

您需要使用nano打开文件:

$光盘/ etc / apache2 /额外$苏达纳米httpd-ssl.conf.

宣布Virtualhost.

第一步是使用使用的新虚拟主机 directive

<virtualhost.*443.>

一般虚拟主机设置

接下来,内部directive, we will declare some basic host settings:

  • Documentroot.:网站Webroot的绝对路径
  • 服务器名称:完全限定的域名(FQDN)
  • errorlog.:错误日志的位置
  • Customlog.:访问日志的位置

启用S​​SL.

要启用Apache中的SSL引擎,我们只需将设置设置为“ON”。

#ssl引擎交换机Sslengine.on

指定证书和私钥

在开始时使用路径,我们将告诉SSL引擎证书请求文件(CSR)和私有主机密钥(.key)的位置。

`#Server Certificate:sslcertificatefile.“/private/etc/apache2/ssl/local.example.com.crt”#server私钥:sslcertificatekeyfile.“/private/etc/apache2/ssl/local.example.com.key”

SSL引擎选项

有很多选项可以(如果要为生产服务器设置生产服务器)为SSL引擎配置,包括支持的密码和使用的CIPHER的排序。如果您一直在遵循任何最近的安全新闻,那么您可能听说过POODLE security flaw使用SSL 3.0后退漏洞。为防止生产服务器上的任何风险,您必须将服务器配置为使用最新版本的TL(1.3作为此写作的1.3),并删除对旧SSL版本2.0和3.0协议的支持。

协议和CIPHERS - 哦,我!

如果您对所有协议,密码,优先级逻辑等混淆,那么我会建议您阅读Mozilla文章在服务器端安全和TLS上。它们为生产环境和各种Web服务器提供了一些最佳实践配置;包括:IIS,Apache和Nginx。

对于我们的本地开发服务器,我们不会担心协议/密码,只需添加以下选项即可。

#ssl引擎选项:<filesmatch.“\。(CGI | SHTML | PHTML | PHP)$”>ssloptions.+ stdenvvars.filesmatch.><目录“/ library / webserver / cgi-executables”>ssloptions.+ stdenvvars.目录>

Complete Virtual Host

Last, we need to close the指示。我们在httpd-ssl.conf文件中的完整虚拟主机应该如下所示:

<virtualhost.*443.>#General设置为虚拟主机Documentroot.“/www/local.example.com/www”服务器名称local.example.comerrorlog.“/private/var/log/apache2/local.example.com-error_log”Customlog."/private/var/log/apache2/local.example.com-access_log"common#ssl引擎交换机:Sslengine.on#Server Certificate:sslcertificatefile.“/private/etc/apache2/ssl/local.example.com.crt”#server私钥:sslcertificatekeyfile.“/private/etc/apache2/ssl/local.example.com.key”#ssl引擎选项:<filesmatch.“\。(CGI | SHTML | PHTML | PHP)$”>ssloptions.+ stdenvvars.filesmatch.><目录“/ library / webserver / cgi-executables”>ssloptions.+ stdenvvars.目录>virtualhost.>

主机文件

In case this is a new website, you should also modify your hosts file to direct the domain name to your local Apache web server. If you already had the domain configured in your hosts file, then you can skip this step.

主机文件位于:/etc/hosts

Note that the file does not have an extension. Let's open this up in nano.

$光盘/ etc $苏达纳米主持人

然后,为您的网站添加新行。我在用local.example.com

127.0.0.1 local.example.com.

主机文件

测试配置和重新启动Apache

最后一步是测试我们的新配置,并假设一切都很好,重新启动Apache Web服务器。

$苏达apachectl -t $苏达apachectl重新启动

测试和重新启动Apache

全做完了。您现在使用Apache向HTTPS为您的网站提供服务。

Brian F爱

嗨,我是布莱恩。我对类型名称,Angular和node.js感兴趣我嫁给了我最好的朋友邦妮,我住在波特兰和我滑雪(很多)。