我正在尝试为appengine上的自定义域设置SSL。该应用程序目前在自定义域上使用http工作正常。
我的证书提供商要求我使用openssl执行以下操作:
openssl req -nodes -newkey rsa:2048 -keyout newkey.key -out newcsr.csr
这产生了两个新文件,一个.key和一个.csr
我在创建证书的过程中使用了.csr,我看到了对comodo的引用,所以我假设他们提供了签名。我的提供商现在让我可以选择下载证书和中间证书。下载证书时,谷歌浏览器将其保存为.crt文件。
.key文件以-----BEGIN PRIVATE KEY-----
.crt文件以-----BEGIN CERTIFICATE-----
AppEngine需要证书文件和密钥文件。我尝试过两次上传.crt文件和.key文件但没有使用插槽。
我尝试将.crt转换为PEM:
openssl x509 -in certificate-xxxxx.crt -out mycert.pem -outform PEM
这给了我一个.pem,但也没有被接受。
我感谢任何评论,因为我不是安全专家,我在这里盲目。
更新-----
我的证书和密钥文件似乎都是.pem格式。
我认为密钥文件存在问题,因为它始于----- BEGIN PRIVATE KEY -----而不是----- BEGIN RSA PRIVATE KEY -----但我是被旧页面误入歧途 - 请参阅https://www.globalsign.com/blog/ssl-with-google-app-engine.html。
似乎差异只是传统格式而不是 PKCS8 格式 - 请参阅Convert pem to key, SSL virtual host apache redhat aws
有趣的是,现在加载我的证书文件和密钥文件时,我收到的错误是“私钥和SSL证书都应采用未加密的PEM格式”。我想知道问题是由于加密还是证书提供者不是Comodo,我需要以某种方式合并临时证书。
已解决---- 密钥文件采用PEM格式,但不是RSA。我用过:
openssl rsa -in newkey.key -out newkey.pem
现在Google已接受这些文件。
newkey.pem文件以----- BEGIN RSA PRIVATE KEY -----开头,显然您需要这个才能被Google接受。
答案 0 :(得分:1)
我采用了类似的方法并取得了成功。
区别在于我的密钥文件以: -----开始RSA私钥-----
我用这行来生成密钥和csr:
openssl req -new -newkey rsa:2048 -nodes -out mydomain.com.csr -keyout mydomain.com.key -subj "/C=FR/ST=Essonne/L=Paris/O=MyCompany/CN=mydomain.com"
我想你试图导入它? : https://admin.google.com/yourdomain.com/AdminHome?fral=1#SecuritySettings:flyout=ssl
我希望这会对你有帮助。