【问题标题】:ssl on a local dev server本地开发服务器上的 ssl
【发布时间】:2014-02-04 16:43:32
【问题描述】:

我在笔记本电脑上运行 ubuntu 作为测试服务器。我正在尝试使用自签名 ssl 证书设置一些测试站点。我认为除了 apache 2 conf 文件之外,我的一切都是正确的。

在创建证书时,我将通用名称命名为 *.hr4.mdev。 “mdev”是我随意称呼的本地开发环境。

所以我修改了我现有的 conf 文件以在 443 上而不是在 80(第 1 行)上侦听,并添加了第 6、7 和 8 行。

<VirtualHost *:443>
  ServerAdmin  myemail@mydomain.com
  ServerName   marino.hr4.mdev
  ServerAlias  *.marino.hr4.mdev
  DocumentRoot /var/www/marino.hr4/htdocs
  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/apache.crt
  SSLCertificateKeyFile /etc/apache2/ssl/apache.key
  <Directory /var/www/marino.hr4/htdocs>
    php_value include_path /var/www/marino.hr4/htdocs
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

  ErrorLog /var/www/marino.hr4/logs/error.log
  # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
  LogLevel debug

  CustomLog /var/www/marino.hr4/logs/access.log combined
</VirtualHost>

现在,当我访问该站点 (https://marino.hr4.mdev) 时,我被告知“它有效!”这在一定程度上令人放心,但这不是我期望看到的内容。


引用了 tremor 的链接后,我的 conf 文件现在如下所示:

<VirtualHost 192.168.73.128:443>
  SSLEngine on
  SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

  SSLCertificateFile /etc/apache2/ssl/apache.crt
  SSLCertificateKeyFile /etc/apache2/ssl/apache.key

  ServerAdmin  bernard@theminery.com
  ServerName   marino.hr4.mdev
  ServerAlias  *.marino.hr4.mdev
  DocumentRoot /var/www/marino.hr4/htdocs

  <Directory /var/www/marino.hr4/htdocs>
    php_value include_path /var/www/marino.hr4/htdocs
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

  ErrorLog /var/www/marino.hr4/logs/error.log
  # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
  LogLevel debug

  CustomLog /var/www/marino.hr4/logs/access.log combined
</VirtualHost>

重新启动 Apache 后,我被要求添加一个安全异常,这很好,但随后我被踢到了我在我的机器上设置的另一个站点。

【问题讨论】:

  • 只需将您的虚拟主机设置为默认主机,“It works”就是默认的 apache 目录。

标签: apache ssl apache2


【解决方案1】:

添加 NameVirtualHost 指令,可能是这样的?

NameVirtualHost *:443
Listen 443

您的 apache 服务器显然是在为它的默认服务器“它可以工作”而不是您的网站提供服务。

这里有一些来自 apache 的支持信息:http://wiki.apache.org/httpd/NameBasedSSLVHosts

编辑:

可能将您的虚拟主机移动到 conf 文件中第一个引用的虚拟主机,默认是根据顺序选择的。

【讨论】:

  • 当我将这些行添加到我的 conf 文件并重新启动 apache2 时,我收到一条通知“apache2 configtest 失败。”它还告诉我“NameVirtualHost 无效,将在下一个版本中删除”
  • 谢谢颤抖,看来我比以前领先了一点。请在上面查看我的编辑。
  • 哦,你一定用的是 apache 2.4?我不认为那是用 Centos 打包的。 NameVirtualHost 在 2.2 之后可能会被弃用。此外,列出虚拟主机的顺序是其中一个成为默认的顺序。因此,您想要成为默认的应该是 .conf 文件中顺序的第一个。
【解决方案2】:

所以最后我修改了ports.conf文件并将443添加到Listen指令中,所以现在它显示为:

Listen 80 443
<IfModule ssl_module>
  Listen 443
</IfModule>
<IfModule mod_gnutls.c>
  listen 443
</IfModule>

我还更改了我的 conf 文件的第一行

<VirtualHost 192.168.73.128:443>

返回

<VirtualHost *:443>

特别感谢颤抖为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 2012-03-30
    • 2018-01-07
    • 1970-01-01
    • 2018-07-02
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    相关资源
    最近更新 更多