- 66
- 0
前端项目经常需要用到 https 安全连接,为了本地开发方便,我想给 localhost 加上 ssl ,所以我用下面这条命令生成证书和密钥:
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out crt.pem
创建期间所有问题一路回车跳过。接下来还用以下 openssl 命令转换了 pem 文件:
openssl rsa -outform der -in key.pem -out my.key;
openssl x509 -outform der -in crt.pem -out my.crt;
然后我自行把 my.crt 文件导入 Windows 下 Chrome 的 设置-管理证书-受信任的根证书颁发机构 里。最后用 browser-sync 或 http-server 工具打开本地服务器并监听静态目录,访问 https://locahost:8080 依旧显示 您的连接不是私密连接 ,打开标签页证书,可以看到证书导入成功,证书状态是 该证书没有问题 。
可是证书依旧是无效的,通过大量网络搜索,确保证书的生成和导入是没问题的,但就是没办法像访问普通 https 链接那样被信任。网上甚至有些文章教怎么设置浏览器不弹出警告,我觉得这是不治本的。所以对网上所说的自定义 ssl 证书可以方便开发的可行性感到疑惑。
问题:自定义 ssl 证书给 localhost 使用,是否能达到普通 https 网站的连接效果?如果是,请问该如何操作?
期望:自建 ssl 证书并打开本地服务器,使得 https://locahost:8080 能像普通 https 站点一样,被 Windows 的 Chrome 和 macOS 的 Safari 浏览器信任并正常访问。
PS:我这个问题被人踩了一下,系统提示我的问题“没有实际价值,缺少关键内容,没有改进余地”,我不是经常来思否可能不是很懂社区规矩。我提问之前已经搜索过没有相似的问题,难道这不算有实际价值?我的步骤、命令和尝试也列出来了,这关键内容难道还不充分?这个问题既然是可以实现的,那就是有改进的余地吧?我不是很明白为什么会被踩一下,希望看到这段话的朋友们在评论里指正我的不足之处,下次提问我注意一下。
补充:感谢下面两位的回答,我已经成功在本地打开 https 链接了。但是现在有个新的小问题,就是我不能在局域网让其他设备也访问 https://localhost:8080,本来在证书里加上本机的 ip 地址即可,但是公司的 ip 地址是动态分配的,几乎一天一换。于是我想用 Browsersync 做代理,但是代理出来的 https://DynamicIP:8088 仍然显示不安全,这个有什么解决办法么。
- 共 0 条
- 全部回答
-
邋遢仙人 普通会员 1楼
要在本地自建 SSL 证书并将其与 localhost 使用并通过 Chrome 和 Safari 浏览器的验证,请按照以下步骤操作:
- 首先,安装以下工具:
- OpenSSL
-
DNS 解析器 (如nslookup)
-
安装 OpenSSH:
- 安装 OpenSSH:
sudo apt-get install openssh-client - 生成 SSL 密钥对:
ssh-keygen -t rsa - 使用 SSL 密钥对生成证书:
openssl req -new -nodes -keyout /path/to/your/private.key -out /path/to/your/public.key -
保存并替换证书和私钥文件的路径。
-
在本地服务器上安装 Apache:
- 安装 Apache:
sudo apt-get install apache2 - 连接到服务器并进入配置文件夹:
sudo nano /etc/apache2/sites-available/default - 在文件中添加以下内容:
<VirtualHost *:80> ServerName localhost SSLEngine on SSL_certificate /path/to/your/private.key SSL_certificate_key /path/to/your/public.key # Add your SSL settings here </VirtualHost> - 保存并关闭文件。
- 配置 Apache 并启用 SSL:
sudo a2ensite default sudo service apache2 restart -
在浏览器中输入
http://localhost,您应该看到 SSL 证书的验证消息。 -
从互联网上获取 DNS 记录:
- 访问 Google DNS (8.8.4.4 或 8.8.8.8) 并设置您的本地服务器为首选DNS服务器。
- 在本地服务器上安装 Nginx(或用其他 Web 服务器替代)。
- 安装 Nginx 并进入配置文件夹:
sudo nano /etc/nginx/sites-available/default - 在文件中添加以下内容:
server { listen 80; server_name localhost; root /var/www/html; location / { try_files $uri $uri/ =404; } } - 保存并关闭文件。
- 配置 Nginx 并启用 SSL:
sudo a2ensite default sudo service nginx restart - 在浏览器中输入
http://localhost,您应该看到 SSL 证书的验证消息。
请注意,这个过程可能需要一些时间来完成,具体取决于您的本地服务器和互联网速度。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
