如何在 GCE 上安装 SSL [Wordpress + Apache]

2023-12-11

我使用 openssl 命令创建了一个私钥文件:

openssl genrsa -des3 -out private.key 2048

输入我的密码,然后生成 CSR:

openssl req -new -key privatekey.key -out csrkey.csr

我使用此 CSR 密钥通过 RapidSSL 创建 SSL 证书。他们向我颁发了 3 个以 .cer 结尾的证书,即:

  1. CACertificate-1.cer
  2. CACertificate-2.cer
  3. 服务器证书-1.cer

我将所有这些证书上传到 /etc/apache2/ 文件夹

/etc/apache2/ 包含:

  • CACertificate-1.cer
  • CACertificate-2.cer
  • 服务器证书-1.cer
  • 私钥.key
  • Csrkey.csr
  • 链.ctr (我从 Rapidssl 获得了这个作为中级证书)

然后我必须将代码添加到/etc/apache2/apache2.conf:

<VirtualHost _default_:443>
SSLEngine on
DocumentRoot /var/www/html
ServerName example.co.uk
SSLEngine on
SSLCertificateFile /etc/apache2/CACertificate-1.cer
SSLCertificateKeyFile /etc/apache2/privatekey.key
SSLCertificateChainFile /etc/apache2/chain.ctr
</VirtualHost>

My /etc/apache2/apache2.conf文件没有<VirtualHost>,当我尝试重新启动 apache 时,它​​显示“SSLEngine 命令未在此模块中定义”。所以我环顾四周发现/etc/apache2/sites-available/default-ssl.conf其中确实包含<VirtualHost>

我继续添加上面的代码,但是在使用重新启动 apache 之后

sudo apachectl restart

But the https://example.co.uk出现灰屏:SSL 连接错误

ERR_SSL_PROTOCOL_ERROR 隐藏详细信息 无法建立安全连接 到服务器。这可能是服务器的问题,也可能是 需要您没有的客户端身份验证证书。


以下是在 Google Compute Engine 上启用 Apache 服务的 HTTPS 协议的步骤(您可以安全地跳过已执行的这些步骤):

  1. 创建一个安全目录来安装和保护您的密钥

$ sudo mkdir /etc/apache2/ssl.crt
$ cd /etc/apache2/ssl.crt

  1. 生成私钥

$ sudo openssl genrsa -out example.key 2048

  1. 生成证书签名请求 (CSR)

$ sudo openssl req -new -key example.key -out example.csr

  1. 您可以使用新的 CSR 从证书颁发机构 (CA) 获取有效证书。或者,您可以通过运行以下命令生成自签名证书

$ sudo openssl x509 -req -days 365 -in example.csr -signkey example.key -out example.crt

注意:自签名证书不适合公共站点。 虽然自签名证书实现了完全加密,但它会 当访问者尝试访问时,导致大多数浏览器显示警告或错误 访问您的网站。提供上述命令用于测试目的 仅有的。

  1. 打开 Apache 的 SSL 站点配置文件进行编辑

$ sudo nano /etc/apache2/sites-available/default-ssl.conf

  1. 编辑以下指令的值

SSLCertificateFile /etc/apache2/ssl.crt/example.crt

SSLCertificateKeyFile /etc/apache2/ssl.crt/example.key

  1. 如果您从 CA 获得了证书链文件,请取消注释并编辑 SSLCertificateChainFile 值

SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

  1. 保存配置文件并关闭它。

  2. 现在启用此站点配置文件

$ sudo a2ensite default-ssl.conf

  1. 您可以使用下面的命令来验证并查看配置错误

$ sudo apachectl configtest

  1. 重新启动 Apache 服务

$ sudo service apache2 restart

  1. 为以下协议添加/启用 GCE 防火墙规则:VM 实例的端口对

tcp:80 and tcp:443

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 GCE 上安装 SSL [Wordpress + Apache] 的相关文章

随机推荐

  • SQL Server批量插入

    我想将一列文本文件导入到我的 SQL 表之一中 该文件只是脏话列表 我编写了以下 TSQL 来执行此操作 BULK INSERT SwearWords FROM c swears txt WITH FIELDTERMINATOR ROWTE
  • Scapy多次嗅探数据包?

    我正在使用 Scapy 通过使用以下代码来捕获数据包 from scapy all import def verify p p display sniff prn verify iface lo 嗅探功能多次捕获每个数据包 例如 如果我有一
  • RecyclerView 加载更多内容并出现 ProgressBar 错误

    我正在尝试创建RecyclerviewonLoadMore 与ProgressBar在底部 我试过了这个解决方案 但是我的方法 onLoadMoreActivity从未被调用过 请帮我 这是我的Adapter public class Ne
  • 使用 Realm studio 打开我的领域文件时出现问题

    我无法在领域工作室中打开 default realm 文件 这是我收到的错误 此版本的 Realm 不支持打开格式版本 20 的 Realm 文件 我在 stackoverflow 上看到了类似的问题 但没有任何答案 领域工作室版本 5 0
  • String.intern() 的性能损失

    很多人谈论 String intern 的性能优势 但实际上我更感兴趣的是性能损失可能是什么 我主要关心的是 搜索成本 intern 确定常量池中是否存在可内部字符串所花费的时间 该成本如何随着池中字符串的数量而变化 同步 显然常量池是整个
  • 无法使用 spring javamail 从服务器 heroku 发送电子邮件

    我尝试从以下位置发送电子邮件Heroku using 春季javamail 但出现错误 我的代码 import org springframework mail MailSender import org springframework m
  • Git - git-svn 克隆后删除远程分支

    我已经使用以下命令克隆了 SVN 存储库git svn clone trunk trunk tags tags branches branches 该操作已正确执行 现在当我列出我的分支时 我拥有所有过去的标签 例如 git branch
  • 将样式应用于 Android ListView

    我想在我的应用程序中设置 lisview 的样式 如下图所示 我尝试通过应用渐变来开发它 list item normal 的代码是
  • 具有自定义视图的堆叠式 ActionBar 选项卡未正确显示

    使用操作栏选项卡时 有时当选项卡内容对于显示来说太大时 它们会显示为 堆叠 当我对选项卡内容使用自定义视图时 会出现问题 它会导致所选选项卡不会显示在下拉列表中 并且一旦选择选项卡 下拉列表就会消失 并出现小的空选项卡 Here is a
  • Aho-Corasick 整个单词的文本匹配?

    我正在使用 Aho Corasick 文本匹配 想知道是否可以更改它以匹配terms而不是字符 换句话说 我希望术语而不是字符成为匹配的基础 举个例子 搜索查询 他 句子 你好世界 Aho Corasick 会将 he 与以索引 2 结尾的
  • 播放视频 android 时未捕获第一次按后退按钮

    我有一个奇怪的错误 我不知道如何修复 我有一个视频播放器 一个播放视频的简单视频视图 现在我已经实现了逻辑 以便当用户按下后退按钮时 它告诉他再次按下后退按钮以退出 当他这样做时 它就会退出 但问题是第一次背压没有被抓住 我不知道是什么原因
  • 如果我想使用单个 UIMA 依赖库,是否需要重写整个 java 项目?

    我想用https code google com p heideltime 在一个java项目中 该代码 适合 UIMA 管道 这是我根本不理解的 UIMA 看起来像是为了解决大量我没有的问题而设计的 所以我只想获得运行该代码所需的最少量的
  • 如何保护 C++03 和 C++11 的移动构造函数?

    这类似于在运行时可以检测到 C 03 和 C 11 之间的哪些差异 如果有 但在这种情况下 我希望通过预处理器进行检测 我们该如何守护移动构造函数 and 移动作业 当源代码同时用于 C 03 和 C 11 时 以下是否足够 是移动语义所有
  • 什么时候意图额外在活动之间变得无效?

    我在活动之间接收意图额外内容时遇到问题 在我的 MainActivity 中 我启动 Gallery 活动来选择外部 SD 卡上的视频文件 public class MainMenu extends Activity Button chan
  • 无法从 std::bind 推导出 std::function 的模板参数

    我试图找到一种方法来调用许多类成员函数 每个类成员函数都有不同的参数 并且在调用之前和之后发生某些已知的功能 这个包装函数是我尝试过的 但是例如对它的最终调用不会编译错误 bool Wrapper Work std function Arg
  • 遇到格式不正确的数值 - 这意味着什么?

    当通知打开时 我会收到以下消息标记 注意 遇到格式不正确的数值 这是否意味着预期值不是一个简单的整数 引用的行显示了这一点 per raw gt 0 ceil raw cast 5 100 0 重现 var dump 14 3 votes
  • 从react-js-pagination获取分页器以显示在页面上

    我有一个反应应用程序 它是购物网站的前端 我有一个产品页面 我正在尝试将分页从react js pagination添加到其底部 这样我就不必立即呈现整个产品列表 我遵循了实施分页的指南https www npmjs com package
  • 在函数上使用 sizeof 的输出[重复]

    这个问题在这里已经有答案了 为什么下面的代码给出 include
  • 在 PHP 中,使用 fopen() 将文件指针资源分配给变量后,如何从变量中获取文件名?

    例如 file fopen File txt r filename file gt basename 如果有像文件对象 文件指针资源 的basename这样的方法 不 那里没有 顺便问一下 什么场景下需要这个东西
  • 如何在 GCE 上安装 SSL [Wordpress + Apache]

    我使用 openssl 命令创建了一个私钥文件 openssl genrsa des3 out private key 2048 输入我的密码 然后生成 CSR openssl req new key privatekey key out