为 Windows Vista 上的 Apache 生成自签名 SSL 证书

为 Windows Vista 上的 Apache 生成自签名 SSL 证书

我不知道如何在 Windows Vista 上为 Apache 生成自签名 SSL 证书,但我必须这样做。

我怎样才能做到这一点?

答案1

您可以安装适用于 Windows 的 OpenSSL,免费。

安装后,打开命令行(cmd.exe),转到安装目录并运行适当的openssl命令。

openssl.exe req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 1000 -nodes

这将生成server.key(Apache 的私钥)和server.crt(自签名证书)。请记住保护好您的私钥。

安装到 Apache2(在 Linux 中):

sudo a2enmod ssl
sudo a2ensite default-ssl
nano /etc/apache2/sites-enabled/default-ssl

将正确的路径更改为以下行(新密钥和证书的路径):

SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.crt
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

保存并运行/etc/init.d/apache2 restart(或者如果您的发行版使用不同的方式,则不是该命令)。

答案2

我假设你需要这个证书来进行本地开发。如果是这样,有一个非常有用的工具可以做到这一点,叫做认证。它会生成证书并将其添加到您的本地证书中,这样它就会变得可信。我发现它非常容易使用,因为我只需在 shell 中输入两个命令就可以实现所有这些。

此页面有有关如何安装的说明: https://github.com/FiloSottile/mkcert

如果你有 choco,你可以使用

choco install mkcert

安装后,您需要安装其本地权威证书,以便它能够被信任。

mkcert -install

这将弹出一个要求确认的窗口。

之后,您可以继续生成证书。该命令非常简单,只需要您希望此证书在哪些域中受信任。就我而言,我希望它在 localhost 中进行开发,因此我将输入:

mkcert localhost 127.0.0.1 ::1

它会创建两个 .pem 文件,这是 Apache 所需要的。

将这两个文件复制到托管您网站的机器上。Linux 上 SSL 证书的典型目录是 /etc/ssl/certs/

正如 Olli 提到的,您可以在 Linux 上运行以下命令来启用 ssl:

sudo a2enmod ssl
sudo a2ensite default-ssl

将 default-ssl.conf 文件中的以下几行更改为证书的名称。该文件通常位于以下位置之一:

  • /etc/apache2/sites-enabled/
  • /etc/apache2/mods 已启用/

应该有一个 VirtualHost 指令,包含以下几行:

SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.crt
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

更改这些行中的路径。第一行必须指向没有“-key.pem”后缀的文件,第二行有后缀。不用担心 .crt/.key/.pem 之间的扩展名差异,mkcert 会输出两个“.pem”文件,它们没问题。

现在,您需要重新启动服务器以使其选择证书。为此,您可以键入以下内容之一。它会根据发行版的不同而变化:

/etc/init.d/apache2 restart
sudo systemctl restart apache2
sudo systemctl restart httpd2
sudo systemctl restart httpd

希望能帮助到你!

相关内容