官方原文链接

https://cwiki.apache.org/confluence/display/CLOUDSTACK/Procedure+to+Replace+realhostip.com+with+Your+Own+Domain+Name


  • 简介

  • 功能影响

  • 已知问题

  • 先决条件

  • 安装步骤

  • 上传自定义证书

  • 验证过程

  • 实施细节

  • 故障排查

  •  常见问题

    • 如何生成自定义根CA和证书?

    • 如何从证书颁发机构Verisign获取证书?

简介

该文档介绍如何替换realhostip.com为自定义域名。 重要:你必须做该步骤,realhostip.com域名的DNS解析服务已经失效。

*********** 查看公告 : http://s.apache.org/jwe ***************************

功能影响

  • 通过控制台代理虚拟机 (CPVM)访问虚拟机控制台。

  • 通过辅助存储虚拟机 (SSVM)拷贝可用模版。

  • 下载 模版/ISO/卷 (SSVM)。

备注 - 如果你不想受影响的功能使用SSl通信,你完全可以禁用SSL。将 secstorage.encrypt.copy 设置为 "false",  consoleproxy.url.domain 设置为空值即可。

已知问题

问题

描述

备注
1.不支持自签名证书
2.一旦上传了自定义域名证书,,将无法回退使用realhostip.com。请参考场景问题解答部分,创建自定义根认证机构(CA)和证书

先决条件

  1. 为你的域名设置公共DNS解析

    1. 为了替换realhostip.com使用您自己的域名,首先你需要在DNS服务器中针对你的域名做相关配置。 在该示例中我们假设你使用BIND作为DNS服务器。其他类型的DNS服务器也可以正常工作。本示例中我们使用“yourhostip.com”作为新的域名。 使用realhostip.com的方式为将CloudStack公共网络中的IP地址由77.88.99.11,转换成DNS名称:77-88-99-11.realhostip.com。 使用浏览器连接该名称匹配的通配符证书 *.realhostip.com时,要求使用SSL。 针对你的环境,你需要参照这个配置。

      1) 在你的DNS服务器中设置一个区域(如果还未设置)。Bind9中的配置示例如下:

      zone "yourhostip.com" IN { 
            type master; 
            file "yourhostip.com.zone"; 
            allow-update { none; }; 
      };

      2) 现在你需要为CloudStack中所有控制台代理可以分配的公共IP创建A记录。你会有这样一个地址范围:55.66.77.100 - 55.66.77.200。 在你的区域文件中,你需要参照如下记录添加:

      55-66-77-100      IN      A      55.66.77.100 
      55-66-77-101      IN      A      55.66.77.101 
      55-66-77-102      IN      A      55.66.77.102 
      55-66-77-103      IN      A      55.66.77.103 

      等等.. 

      55-66-77-200      IN      A      55.66.77.200

  2. 为你的域名签发通配符证书。该证书从根认证机构处获得,例如VeriSign等。 参考如下信息:

    1. 根认证机构的公共证书为PEM格式

    2. 中级认证机构(如果有的话)的公共证书为PEM格式

    3. 通配符域证书为PEM格式

    4. 私钥为PKCS8格式(备注 - 详细步骤记录在管理指南中 "更改控制台代理SSL证书和域名"部分)

安装步骤

  1. 一旦更新管理端和Agent端的全局配置参数成功,则重新启动管理服务器。  

  2. 全局设置

  • 改变 secstorage.encrypt.copy = true (该值默认为false。如果不为true,则修改为true 启用SSL。 你可以选择SSVM不使用SSL)

  • 改变 secstorage.ssl.cert.domain = *.yourdomain.com. 例如 - *.xyz.com. 备注 - 记得添加 “*”

  • 改变 consoleproxy.url.domain = *.yourdomain.com. 例如 - *.xyz.com (默认值为空,你可以保持为空,并选择CPVM是否使用SSL)。备注 - 记得添加 “*”

按照 "上传自定义证书"步骤替换realhostip.com为你自己的域名。 域名应该为: xyz.com (无需添加“*”)

上传自定义证书

备注:  

  • 针对上传自定义证书, 请忽略上传“中级证书”步骤。

  • 针对上传自定义链接证书, 必须上传中级证书。

  • 使用uploadCustomCertificate API上传根证书和中级证书。通过UI上传服务器证书和私钥。

 

验证过程

  • CPVM - 检查用户虚拟机的控制台应该已经工作正常. 嵌入的iframe中应该显示为配置后的HTTP/HTTPS协议。

  • SSVM -

    • 复制模版 - 尝试从一个区域复制模版到另外一个区域,验证是否工作正常.

    • 下载 模版/卷/iso - 下载链接应该显示为配置后的HTTP/HTTPS协议,并确保可以正常下载。

实施细节

  • 详细信息在此处获得: wiki

  • CPVM仅充当Java HTTP服务器。

  • 如果是在源区域,SSVM充当服务器提供模版/卷/iso的下载。充当服务端时使用Apache webserver。

  • 从目标区域中复制时,SSVM充当客户端进行复制操作。 SSVM充当客户端时使用Java Client。

故障排查

详细信息可以在此处获得: wiki

常见问题

如何生成自定义根认证机构(CA)和证书

本质上, 此过程为 :

  1. 创建你自己的根认证机构(CA)

  2. 创建由根认证机构(CA)签署的中级认证机构(可选步骤)

  3. 创建特定的域名证书请求,并使用中级认证机构签发证书(或根认证机构)

  4. (视情况而定) 你需要在浏览器中添加根认证机构和中级认证机构。 请注意,如果在你机器上使用openssl创建,他们将存在于操作系统中。因此,较好的测试方法是不同的机器上创建。

对于步骤 1 : https://jamielinux.com/articles/2013/08/act-as-your-own-certificate-authority/

对于步骤 2: https://jamielinux.com/articles/2013/08/create-an-intermediate-certificate-authority/   (注意博客中错误的部分,参考下方评论内容)

对于步骤 3: https://jamielinux.com/articles/2013/08/create-and-sign-ssl-certificates-certificate-authority/

对于步骤 4 : 在浏览器或系统中执行特定的步骤。

 

如何从证书颁发机构Verisign获取证书

实际操作步骤如下。 使用openssl工具。具体步骤请查阅 Admin guide

生成PKCS#8格式的私钥证书

生成证书签名请求 (CSR)

前往你最信任的认证中心,,购买SSL证书,并提交证书签名请求(CSR)。 你将会收到一个有效的证书。.




水平有限,文中如有错误,欢迎指出。