cd ~/
mkdir .localhost-ssl
sudo openssl genrsa -out ~/.localhost-ssl/localhost.key 2048
sudo openssl req -new -x509 -key ~/.localhost-ssl/localhost.key -out ~/.localhost-ssl/localhost.crt -days 3650 -subj /CN=localhost
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.localhost-ssl/localhost.crt
npm install -g http-server
echo "
function https-server() {
http-server --ssl --cert ~/.localhost-ssl/localhost.crt --key ~/.localhost-ssl/localhost.key
}
" >> ~/.bash_profile
source ~/.bash_profile
echo "You're ready to use https on localhost 💅"
echo "Navigate to a project directory and run:"
echo ""
echo "https-server"
它不起作用......这段代码有什么问题吗?
代码来源:https://gist.github.com/jonsamp/587b78b7698be7c7fd570164a586e6b7
经过几天的努力,我终于找到了一种使用 https 运行 localhost 的方法。我想这个解决方案适用于任何 macOS 版本。
来自:https://letsencrypt.org/docs/certificates-for-localhost/
我发现了这个 minica 工具,它是一个简单的 CA,旨在用于 CA 操作员还操作将使用证书的每个主机的情况。当要求生成证书时,它会自动生成密钥和证书。它不提供 OCSP 或 CRL 服务。例如,Minica 适用于为 RPC 系统或微服务生成证书。
https://github.com/jsha/minica
步骤1
brew install minica
步骤2
minica --domains localhost
在minica-key.pem和minica.pem中生成根密钥和证书,然后 生成并签署最终实体密钥和证书,将它们存储在 ./localhost/
步骤3
将这些证书和密钥文件添加到您的配置服务器文件中。例如配置:/etc/apache2/extra/httpd-ssl.conf
<VirtualHost _default_:443>
DocumentRoot "/Volumes/WORK/www/webapp"
ServerName localhost
SSLEngine on
SSLCertificateFile /Users/xxxx/selfsigned-certs/localhost/cert.pem
SSLCertificateKeyFile /Users/xxxx/selfsigned-certs/localhost/key.pem
<Directory "/Volumes/WORK/www/webapp">
Options All
MultiviewsMatch Any
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
步骤4
重启服务器
步骤5
在钥匙串访问 ---> 文件 ---> 导入项目 导入“minica.pem”文件
步骤6
在 Chrome 浏览器中,当访问 https://localhost 时,您将收到一条带有不可信证书的消息 要使其成为值得信赖的产品,您必须访问:
chrome://settings/security -->“管理证书”
从那里打开“minica...”证书并将其设置为受信任
步骤7
我想通过建议 mkcert
https://github.com/FiloSottile/mkcert来跟进 Christi Maris 的回答。它的用途与
minica
基本相同,但会自动将证书添加到系统信任存储(以及可选的 Firefox 信任存储)。
来自
mkcert
文档:
mkcert 是一个用于制作本地信任的开发证书的简单工具。无需配置。
在 macOS 上,使用 Homebrew
brew install mkcert brew install nss # if you use Firefox
mkcert
也适用于 Linux 和 Windows
$ mkcert -install Created a new local CA 💥 The local CA is now installed in the system trust store! ⚡️ The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊 $ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1 Created a new certificate valid for the following names 📜 - "example.com" - "*.example.com" - "example.test" - "localhost" - "127.0.0.1" - "::1" The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
我一直在测试 Flask 应用程序,使用
flask run --debug --cert=adhoc
将其作为 https 运行,每次加载页面时,我都必须点击 Safari 关于不安全网站的警告。一旦我按照上述方式运行 mkcert,我就能够运行
flask run --debug --cert=/Users/username/example.com+5.pem --key=/Users/username/example.com+5-key.pem
我的网站加载为 https,没有任何警告。