我被要求在Apache上的localhost上使用自签名证书设置HTTPS,但我实际上如何做到这一点?我完全不知道。


当前回答

为此我使用ngrok (https://ngrok.com/)。 Ngrok是一个命令行工具,用于为本地主机创建隧道。它同时创建http和https连接。 下载完成后,需要执行以下命令:

ngrok http 80

(在版本2中,语法是:ngrok http 80。在版本2中,任何端口都可以通过隧道。)

几秒钟后,它会给出两个url:

http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com

现在,两个url都指向localhost。

其他回答

这应该是工作Ubuntu,薄荷类似于Apache2

这是一个很好的指南,所以遵循这个

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

然后像这样留下ssl。conf

<VirtualHost _default_:443>
        ServerAdmin your@email.com
        ServerName localhost
        ServerAlias www.localhost.com

        DocumentRoot /var/www


    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

你可以得到它。

希望这对linuxer有帮助

这很简单,

只需运行以下命令

sudo a2enmod ssl

sudo service apache2 restart

sudo a2ensite default-ssl.conf

就这样,你完成了。

如果你想强制使用SSL(总是使用https),编辑文件:

sudo nano /etc/apache2/sites-available/000-default.conf

加上这一行

<VirtualHost *:80>
        . . .

        Redirect "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>

然后重新启动

sudo service apache2 restart

这实际上很简单,假设您手边有一个openssl安装。(您在哪个站台?)

假设你使用的是linux/solaris/mac os/x, Van的Apache SSL/TLS mini-HOWTO有一个很好的演练,我在这里就不再赘述了。

但是,执行摘要是您必须创建一个自签名证书。由于您运行apache for localhost大概是为了开发(即不是公共web服务器),您将知道您可以信任自签名证书,并且可以忽略浏览器抛出的警告。

我刚刚尝试了这一点-我需要在Windows上的本地主机Apache上测试一些开发代码。这比想象中要困难得多。但下面这些步骤在经历了多次拉扯之后还是有效的……

我发现我的Apache安装自带openssl.exe,这很有帮助。如果你没有副本,你需要下载。我的拷贝在Apache2\bin文件夹中,这就是我在下面引用它的方式。

步骤:

Ensure you have write permissions to your Apache conf folder Open a command prompt in Apache2\conf folder Type ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem You can leave all questions blank except: PEM Passphrase: a temporary password such as "password" Common Name: the hostname of your server When that completes, type ..\bin\openssl rsa -in blarg.pem -out blarg.key Generate your self-signed certificate by typing: ..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365 Open Apache's conf\httpd.conf file and ensure SSL module is enabled - there should be no hash at the start of this line: LoadModule ssl_module modules/mod_ssl.so Some Apache installations place the SSL config in a separate file. If so, ensure that the SSL conf file is being included. In my case I had to uncomment this line: Include conf/extra/httpd-ssl.conf In the SSL config httpd-ssl.conf I had to update the following lines: Update SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)" to SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)" (The brackets in the path confuse the module, so we need to escape them) DocumentRoot - set this to the folder for your web files ServerName - the server's hostname SSLCertificateFile "conf/blarg.cert" SSLCertificateKeyFile "conf/blarg.key" Restart Apache. Try loading https://localhost/ in your browser.

希望你能做到这一步。请随时更新这篇文章与任何其他有用的信息。

(截图由Neil Obremski和他的有用文章提供——尽管现在已经过时了。)

为此我使用ngrok (https://ngrok.com/)。 Ngrok是一个命令行工具,用于为本地主机创建隧道。它同时创建http和https连接。 下载完成后,需要执行以下命令:

ngrok http 80

(在版本2中,语法是:ngrok http 80。在版本2中,任何端口都可以通过隧道。)

几秒钟后,它会给出两个url:

http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com

现在,两个url都指向localhost。