微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ubuntu – 服务器证书不包含与服务器名称匹配的ID

我们的服务器昨天升级了,所以它现在有了更新的Ubuntu,Apache 2.4.10,PHP等.在我把所有东西都放回去后,Apache开始抱怨我的配置.

服务器托管一个站点,该站点使用通配符为不同的客户提供动态内容,并包含3个通配符证书,用于为这些客户提供不同的服务.

通配符的配置的一部分如下所示:

<VirtualHost *:80>
    ServerName *.dashboard.example.com
    ServerAlias *.dashboard.example.com
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(.+)\.dashboard.example\.com$
    RewriteRule ^/(.*)$https://%1.dashboard.example.com/$1 [R=302,L]
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName *.dashboard.example.com
    ServerAlias *.dashboard.example.com
    DocumentRoot /var/www/dashboard.example.com/web

    <Directory />
        AllowOverride All
        Options -Indexes +MultiViews +FollowSymLinks
        Order Deny,Allow
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/dashboard.example.com-error.log
    CustomLog /var/log/apache2/dashboard.example.com-access.log combined

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/bundle_wc_dashboard_example_com.crt
    SSLCertificateKeyFile /etc/ssl/certs/wildcard_dashboard_example_com.key
</VirtualHost>

请注意,我正在使用捆绑包作为证书文件.使用SSL检查时,对中间文件和根文件使用单独的文件会导致更糟糕的结果.然后无法识别GeoTrust证书.我的SSL证书供应商解释自Apache 2.4,证书应该捆绑.

所以这对我不起作用:

SSLCertificateFile /etc/ssl/certs/wildcard_dashboard_example_com.crt
SSLCertificateKeyFile /etc/ssl/certs/wildcard_dashboard_example_com.key
SSLCertificateChainFile /etc/ssl/certs/GeoTrust_Global_CA.crt
SSLCertificateChainFile /etc/ssl/certs/RapidSSL_SHA256_CA_G3.crt

但是,上面的内容确实适用于Apache 2.2.

当我尝试启动apache时,它会抱怨ServerName值:

[FAIL] Reloading web server: apache2 Failed!
[warn] The apache2 configtest Failed. Not doing anything. ... (warning).
Output of config test was:
AH00526: Syntax error on line 42 of /etc/apache2/sites-enabled/3-production.conf:
Invalid ServerName "*.dashboard.example.com" use ServerAlias to set multiple server names.
Action 'configtest' Failed.
The Apache error log may have more information.

所以似乎不允许使用星号.如果我删除了星号,apache会启动,但域的错误日志中会出现错误

Fri Mar 11 10:32:13.821304 2016] [ssl:warn] [pid 18019] AH01909: dashboard.example.com:443:0 server certificate does NOT include an ID which matches the server name

从其他来源我发现了以下命令,该命令应该用于确定应该用作ServerName的CommonName:

openssl x509 -in wildcard_dashboard_example_com.crt -noout -subject

哪个回报:

subject= /CN=*.dashboard.example.com

我的浏览器确实显示绿色锁定,但SSL检查抱怨我错过了一个中间/链证书文件(见截图).对于其他2个通配符域和1个不是通配符的普通子域,同一服务器上也会出现同样的问题.即使有apache声明服务器证书也不包含与服务器名称匹配的ID.
站点使用通配符为不同的客户提供动态内容,并为这些客户包含3个不同服务的通配符证书.

关于如何解决这个问题的任何想法?我还能做些什么来检查什么是错的?

2016年5月18日更新

我在4月初修好了.似乎提供SSL证书的公司给了我们一个旧的根证书.他们给我邮寄了一个包含捆绑证书和单独证书文件的zip.我尝试多次安装这些.然后我手动将所有文件内容与其他有效的网站进行了比较.我发现了一个区别,并从他们的网站手动重新下载了证书.

GeoTrust证书不同.安装后,一切都像一个魅力.我的老板告诉我他会联系他们,但不幸的是,这件事从未发生过.无论如何,快乐它现在正在工作.

如果证书仅对* .dashboard.example.com有效,则对dashboard.example.com无效(后者与通配符不匹配).

ServerName用于指定站点的规范名称(单个名称).
其他名称通配符仅进入ServerAlias.

设置例如ServerName foo.dashboard.example.com应该可以工作(与您拥有的ServerAlias结合使用).

关于证书链中提到的问题,这些问题似乎与实际问题无关.
我建议确保正确捆绑所有必需的中间证书.

正如您所说SSLCertificateChainFile已经过时,您不需要使用它,您可以将所有证书放在SSLCertificateFile中.

Qualy’s SSL Labs测试可用于查看是否缺少任何中间证书或是否存在其他问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、安装SSH和配置SSH无密码登录四、安装Java环境1. 安装JDK2. 配置JDK环境3. 检验安装五、安装单机Hadoop1. 下载安装Hadoop2. 运行示例总结前言本文安装的 Hadoop 及 Java 环境基于林子雨老师的《大数据技术原理与应用(第3版)》中所要求,其中Java 版本为1.8.0_301,Hadoop 版本为3.3.1,其他版本的安装请参考其他博客。..
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html  运行django出现错误信息:[2016-02-16 14:33:24,476 pyinotify ERROR] add_watch: cannot watch /usr/local/lib/python2.7/dist-packages/django/contrib/sessio...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失了,如下:别着急,以下教你如何找回之前的虚拟机:1、点击控制,然后选择注册,找到虚拟机的安装目录,比如:C:UserstxVirtualBox VMs,然后选择需要找回的虚拟机vbox,点击打开按钮即可:2、如果打开后报错,则执行第三步:3、删除ubuntu.vbox,然后将ubuntu.vbox-prev重命名为ubuntu.vbox,然后再执行第二步即可...
参见:https://blog.csdn.net/weixin_38883338/article/details/82153933 https://blog.csdn.net/github_39533414/article/details/85211012
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netplan 基于 YAML 的配置系统,使得配置过程非常简单。Netplan 替换了我们之前在 Ubuntu 中用于配置网络接口的旧配置文件/etc/network/interfaces。在本文中,我们将学习如何使用 Netplan 在 Ubuntu 中配置网络。我们将看到静态和动态 IP 配置。我将使用 Ubuntu 18.04 LTS 来描述本文中提到的过程。使用 Netplan 配置网络您可以在/etc
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问,该 URL 代表一种“替代名称”,用于标识提供该服务的服务器的 IP 地址和端口。同一台机器可以同时在不同的端口上提供不同的服务。出于安全原因,可能需要屏蔽 Web 服务的端口号,从而在外部显示与服务实际侦听的端口号不对应的端口号。感谢本教程,您将能够管理您的服务器端口,配置集成在 Ubuntu 中的 UFW 防火墙。特别是,按照指南的说明,您将学习将来自某个端口的请求转发到另一个端口(端口转发),同时使用后者提供的.
Observium 是一个免费和开源的 sa 网络管理和监控系统工具。我们可以使用 SNMP 收集数据,它允许监控所有网络设备。它提供了一个简单易用的 Web 界面。它基于 PHP 并使用 MySQL 数据库来存储数据。在 ubuntu 上设置 Observium 有几个步骤:第 1 步:更新系统。apt-get update第 2 步:安装 PHP 和模块。apt install wget apache2 php php-{pear,cgi,common,curl,mbstring,g
从 20.04 开始,Ubuntu 决定更新实时服务器安装程序以实现自动安装规范,以便能够仅使用 Subiquity 完全自动化安装过程。Subiquity 是新的服务器安装程序(又名“服务器无处不在”),旨在取代之前基于 debian-installer 的经典系统。本文说明了如何使用 Packer 和 Proxmox 上的 Subiquity 生成 Ubuntu Server 20.04 图像模板。介绍Subiquity 仅在live图像文件版本中可用(例如ubuntu-20.0...
Ubuntu 将停止支持 Debian 安装程序(预置)。Ubuntu Server 20.04 附带了一种新的自动化操作系统安装方法,称为带有 subiquity 服务器安装程序的自动安装。这篇文章展示了使用新安装程序构建的打包程序。此设置仅适用于 Ubuntu-20.04 live-server 而不是旧版。SubiquitySubiquity 是 Ubuntu 服务器的新自动安装程序,它是在 18.04 中引入的。自动安装的设置由 cloud-init 配置提供。如果设置,将从配置文件.
此页面的目的是提供在您机器上的 VM 中执行自动安装的简单说明。此页面假设您使用的是 amd64 架构。s390x也有一个版本。通过网络提供自动安装数据这种方法是最容易推广到完全基于网络的安装的方法,在这种安装中,机器会进行网络引导,然后自动安装。下载 ISO转到20.04 ISO 下载页面并下载最新的 Ubuntu 20.04 实时服务器 ISO。挂载 ISOsudo mount -r ~/Downloads/ubuntu-20.04-live-server-amd64...