为谷歌应用引擎创建SSL证书使用ZeroSSL并让我们加密

时间:2016-09-22 19:48:11

标签: google-app-engine ssl lets-encrypt

我正在尝试将使用ZeroSSL.com页面创建的用于Let's Encrypt的ssl证书安装到Google Cloud Platform中。 我按照免费的SSL证书向导进行操作。 ZeroSSL页面在此过程中生成四个文件:     域crt.txt     域key.txt     帐户key.txt     域csr.txt

Google Cloud Platform要求提供两个文件:     PEM编码X.509公钥证书     未加密的PEM编码RSA私钥

我已经完成了所有组合,并遵循了我在网络上找到的所有建议,但我没有成功。

2 个答案:

答案 0 :(得分:5)

我向zeroSSL人询问了这个问题,亚历山大用解决方案回答了我。

SSL证书向导默认生成更长的更安全的4096位密钥,但Google只接受2048位密钥。因此,您应首先在https://zerossl.com/free-ssl/#csr使用CSR Generator并单独生成新CSR,并确保选择2048位。然后下载生成的密钥和CSR(请注意,这是域密钥,而不是LE密钥),然后使用与最初使用的相同LE密钥和使用SSL证书向导的新CSR。 在上一个向导步骤中,您可能需要将domain-crt.txt文件拆分为两个。 --- BEGIN CERTIFICATE -----和--- END CERTIFICATE -----之间的第一部分将进入“公钥证书”字段。 最后,domain-key.txt的内容应该粘贴到“私钥”字段中。

答案 1 :(得分:1)

您可以从命令行免费执行此操作:

安装Certbot客户端:

$ sudo brew install wget
$ wget https://dl.eff.org/certbot-auto
$ chmod a+x ./certbot-auto
$ ./certbot-auto --help

然后,生成证书:

$ cd certbot (if not already there)
$ sudo ./certbot-auto certonly --debug -a manual -d www.yoursite.com -d yoursite.com (<--if you want naked too.)

您应该进入一个屏幕,告诉您验证域名所需的挑战网址和响应。添加每个&amp;部署。让每个网址都正常工作。 (更新需要它们。) 如果您同时执行裸体和www,则需要对挑战URL进行两次,每个子域一次。最后,您应该收到以下消息:

  • 恭喜!您的证书和链已保存在 /etc/letsencrypt/live/www.yoursite.com/fullchain.pem。你的证书会 将于2016年xx-07到期。获取此新版本或经过调整的版本 将来的证书,只需再次运行certbot-auto。至 运行时非交互式续订所有证书 &#34; certbot-auto renew&#34;

将目录更改为pem文件的放置位置:

$ cd /private/etc/letsencrypt/live/www.yoursite.com

创建未加密的密钥(这是您上传到GAE的密钥。如果失败,请使用原始的privkey.pem):

$ sudo openssl rsa -in privkey.pem -out unencrypted_key.pem

转到:https://console.cloud.google.com/appengine/settings/certificates?project=yoursite。点击Upload a new SSL certificate

在文本编辑器中打开这些PEM文件,然后复制/粘贴字段中的内容。 (fullchain.pem是公钥。unencrypted_key.pem是未加密的私钥。)

注意:确保删除任何尾随空格或换行符!

应该这样做。

调试:

如果将证书粘贴到GAE设置页面时,会出现invalid错误:

  • 确保删除任何尾随换行符或空格!

  • 如果仍然无法接受您的PEM文件,请将unencrypted_key.pem中的代码替换为原始privkey.pem

  • 中的代码

如果你得到自制错误:

$ cd /usr/local/Library
$ sudo git pull origin master

如果得到augeas错误:

$ brew install augeas

如果获得警告:已经安装了augeas-1.4.0,它就没有链接

$ sudo brew link augeas

如果ExecutableNotFound:

$ brew install dialog

如果获得警告:对话框1.2-20150920已经安装,它就没有链接

$ sudo brew link dialog

革新:

$ cd certbot
$ ./certbot-auto certonly --debug --force-renew -a manual -d www.yoursite.com -d yoursite.com

(你可能会得到一个&#34;无法达到......&#34;错误,但仍然会创建证书。) 将目录更改为pem文件的放置位置:

$ cd /private/etc/letsencrypt/live/www.yoursite.com

创建未加密的密钥(这是您上传到GAE的密钥。如果失败,请使用原始的privkey.pem):

$ sudo openssl rsa -in privkey.pem -out unencrypted_key.pem

fullchain.pem是公钥 unencrypted_key.pem是未加密的私钥

转到GAE设置并按上述安装。