【问题标题】:how to set-up SSL on google app engine (custom domain name )如何在谷歌应用引擎上设置 SSL(自定义域名)
【发布时间】:2012-07-04 11:39:47
【问题描述】:

Google 刚刚宣布支持自定义域的 SSL,但我无法理解如何设置它,因为无法在 GAE 上生成证书签名请求 (CSR)?!

http://support.google.com/a/bin/answer.py?hl=en&hlrm=en&answer=2644386 我错过了什么吗?

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    扩展上述内容:

    以下三个步骤应该足以生成私钥和自签名证书,适用于在 linux 机器上测试 GAE 上的 SSL:

    • openssl genrsa -out yourdomain.com.key 1024
    • openssl req -new -key yourdomain.com.key -out yourdomain.com.csr
    • openssl x509 -req -days 365 -in yourdomain.com.csr -signkey yourdomain.com.key -out yourdomain.com.crt

    免责声明:它有效,但我不知道我在做什么

    【讨论】:

    • 最近(和投票率较低)的答案有更好的信息。
    【解决方案2】:

    存在各种程序来创建证书签名请求 (CSR)。我在 linux 机器上使用“openssl”来生成密钥和 CSR。

    1) 我为自定义域 (https://cloud.google.com/appengine/docs/ssl) 生成了一个未加密的 PEM 编码的 RSA 私钥,由 Google 的 SSL 指定

    cd $HOME
    openssl genrsa -out rsa_private_key.key 2048
    

    2) 使用“rsa_private_key.key”生成所需的证书签名请求 (CSR) 文件。

    openssl req -new -key rsa_private_key.key -out request.csr 
    

    你会被问到以下问题:

       Country Name (2 letter code) [AU]: US
       State or Province Name (full name) [Some-State]: Illinois
       Locality Name (eg, city) []: Chicago
       Organization Name (eg, company) [Internet Widgits Pty Ltd]: Chicago Company, Ltd.
       Organizational Unit Name (eg, section) []: IT
       Common Name (eg, YOUR name) []: checkout.customedomain.com
       Email Address []:
    

    我忽略了另外两个问题,一切正常。位于您的主目录 ($HOME) 上的“request.csr”是证书颁发机构提供者生成您的证书所需的 CSR 文件。同样,它不一定是 openssl:供应商支持各种平台的许多工具。请记住 Google 的要求。

    关于自定义域的附注:

    确保您的自定义域包含子域或“完全限定域名”。 “万维网”。被认为是一个子域,并且它始终是 Google Appengine(10/2014)中的 ssl 所必需的。所以在我的示例中,如果我想在 customedomain.com 使用 SSL,我会添加“www.customedomain.com”您可以将您的裸域重定向到您的完整域名。

    Google Appengine 不为裸域提供 SSL 支持,例如:https://customedomain.com

    【讨论】:

      【解决方案3】:

      这是从我的回答中转贴的: How to get .pem file from .key and .crt files?

      我试图从 Godaddy 转到应用引擎。诀窍是在终端(mac)中使用这一行来生成密钥和 csr:

      openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr
      

      完全一样,但将 name 替换为我的域名(这并不重要)

      另外,接下来是一堆问题,我回答了与通用名称/组织有关的所有问题 www.name.com ,我只需按 Enter 键就跳过了密码和公司名称

      然后我打开.csr文件,复制,粘贴到go daddy的csr表单中,等待godaddy批准,然后下载,解压,在终端导航到解压后的文件夹,输入:

      cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt

      然后我使用了 Google Apps 自定义域 SSL 问题一文中的这些说明,它们是:

      openssl rsa -in privateKey.key -text > private.pem
      openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem
      

      完全一样,除了我使用 name.unencrypted.priv.key 而不是 privateKey.key,我使用 name.crt 而不是 www_mydomain_com.crt

      然后我将 public.pem 上传到管理控制台以获取“PEM 编码的 X.509 证书”,

      并为“未加密的 PEM 编码的 RSA 私钥”上传了 private.pem..

      .. 这终于奏效了。

      【讨论】:

      • 无论出于何种原因让 Android 识别证书,我必须单独 PEM 编码来自 godaddy 的文件,然后连接它们。最终文件有两个“-----BEGIN CERTIFICATE-----”语句。完成此操作后,ssllabs.com/ssltest/analyze.html 从 B 级到 A 级并关闭一段时间后,Chrome 上的错误消失了。
      • 它工作了,谢谢伙计:) 我正在使用谷歌应用程序引擎,这个私人 Rsa 密钥有问题我在 stackoverflow 的代码下面使用这也对我有用:) 你的私人 PEM 文件有这一行:--- --BEGIN RSA PRIVATE KEY-----删除此行以上的所有内容,它将起作用。
      【解决方案4】:

      您需要使用 CA 生成证书并上传。他们不提供证书创建服务。

      【讨论】:

      • 谢谢!它似乎只需在 linux 服务器上生成 CSR,连接 CA 包并将其与私有证书(.key 文件)一起上传
      • 嗨 mihai,能否请您提供更多详细信息(例如 Linux 命令),说明您如何能够生成此 GAE 兼容的 CSR,例如典型的通配符 SSL 证书 *.yourdomain。 com ? Google 文档似乎认为我们都是 SSL 证书专家......非常感谢!
      • @LouisLC 我生成了一个 CSR(在 wizz 之后没有什么特别的)。我从 digicert 获得了证书,最终得到: DigiCertCA.crt TrustedRoot.crt domain.csr domain.key www_mydomain_com.crt 。我使用以下命令连接了来自 digicert 的内容: cat DigiCertCA.crt TrustedRoot.crt www_epek_com.crt > bundle 。然后我将 bundle 和 domain.key 上传到 GAE 。
      猜你喜欢
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      相关资源
      最近更新 更多