macos - 如何重写 httpd-vhosts.conf 以允许 SSL 连接到私有(private) Web 服务器?

标签 macos apache ssl

我在运行 Mac OS 10.14.6 的 2012 年中期 Mac mini 上运行 Apache 2.4.34 (Unix),我将这台机器用作个人网络服务器。

当我在 httpd.conf 中取消注释“#Include/private/etc/apache2/extra/httpd-vhosts.conf”时,我的浏览器告诉我它无法连接到服务器,即我的 Mac mini,因为两者都没有“localhost”,也没有使用域名“www.ocetacea.net”。

我关注了

https://www.ssl.com/how-to/csr-generation-in-macos-keychain-access/

安装我的 SSL 证书和

https://www.ssl.com/how-to/ssl-tls-installation-macos-mojave/#apache

修改httpd.conf和httpd-vhosts.conf。

我的/private/etc/apache2/extra/httpd-vhosts.conf 目前看起来像:

<VirtualHost *:443>
    DocumentRoot "/Library/WebServer/Documents"
    ServerName ocetacea.net
    SSLEngine on
    SSLCertificateFile "/private/etc/apache2/ocetacea.crt"
    SSLCertificateKeyFile "/private/etc/apache2/ocetacea.key"
    SSLCertificateChainFile "/private/etc/apache2/ocetacea_bundle.crt"
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents"
    ServerName ocetacea.net
    SSLEngine on                                                                                             
    SSLCertificateFile "/private/etc/apache2/ocetacea.crt"                                                   
    SSLCertificateKeyFile "/private/etc/apache2/ocetacea.key"                                                
    SSLCertificateChainFile "/private/etc/apache2/ocetacea_bundle.crt"
</VirtualHost>

sudo apachectl configtest

结果:

Syntax OK

sudo apachectl -k restart

似乎在做我想做的事,即启动服务器。

我担心的是我没有正确安装 SSL 证书。

/private/etc/apache2/ocetacea.crt

开始于

-----BEGIN CERTIFICATE-----

结尾

-----END CERTIFICATE-----

同时

/private/etc/apache2/ocetacea.key

开始于:

-----BEGIN RSA PRIVATE KEY-----

结尾

-----END RSA PRIVATE KEY-----

/private/etc/apache2/ocetacea_bundle.crt

开始于:

-----BEGIN RSA PRIVATE KEY-----

结束于:

-----END RSA PRIVATE KEY-----

这不是我所期望的——我希望这三个文件之一以类似的内容开头

-----BEGIN RSA PUBLIC KEY-----

结束于

-----END RSA PUBLIC KEY----

但这是我第一次尝试设置安全服务器,所以我真的不知道。

如有任何帮助,我们将不胜感激。

我的 system.log 显示:

系统日志重复以下内容:

Aug 14 18:40:55 jnorrisMM com.apple.xpc.launchd[1] (org.apache.httpd): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.

Aug 14 18:41:06 jnorrisMM com.apple.xpc.launchd[1] (org.apache.httpd[18660]): Service exited with abnormal code: 1

Aug 14 18:41:06 jnorrisMM com.apple.xpc.launchd[1] (org.apache.httpd): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.

Aug 14 18:41:16 jnorrisMM com.apple.xpc.launchd[1] (org.apache.httpd[18667]): Service exited with abnormal code: 1

最佳答案

如果您取消注释“#Include/private/etc/apache2/extra/httpd-vhosts.conf”这一行并且您的服务器在端口 80 上工作,那么您不需要端口 80 的第二个 VirtualHost conf,因为它已经配置在一些文件。此外,您不需要添加 SSL Engine ON 和证书。

清除此后,您应该关注您的证书。您有 2 个证书和 1 个 key (私钥)与您的 1 个证书相匹配,用于保护服务器。

此文件/private/etc/apache2/ocetacea_bundle.crt 是 bundle ,其中可能包含超过 1 个证书而不是 key 。

配置看起来不错,而且你几乎已经完成了,因为语法没问题。还要确保在外部访问之前在防火墙中打开端口 443。

最好的问候

关于macos - 如何重写 httpd-vhosts.conf 以允许 SSL 连接到私有(private) Web 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57500014/

相关文章:

macos - 来自命令行的 Mac OS X 新用户

macos - 粘贴到新工作表后删除选择,粘贴到列中的第一个可用单元格

apache - 根据 .htaccess 中的环境变量使用 RewriteCond

php - $_GET 数组为空

ruby-on-rails - 将 Apache 负载均衡器代理到 Unix 套接字而不是端口

api - 使用 java mail api 连接到 Exchange 服务器的 pop3 连接失败

SSL 实现 oracle apex

c - 对于非 GNU 链接器,是否有等效于 GNU 链接器 "--just-symbols"选项的选项?

java - 为什么 JNA 的简单使用会导致 Mac OS X 上的 fork() ?

java - 如何使用 Bouncy CaSTLe 在 Java 中编辑密码套件列表