我自己制作SSL证书,自己使用node的https模块搭建了服务器,但是微信端访问没有反应怎么办?

发布于 2022-09-04 05:24:50 字数 467 浏览 13 评论 0

我已经自己制作了'key.pem'和'cert.pem'。然后直接使用阮一峰先生的代码:

var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

var a = https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);

结果是,所有的浏览器都不能正常访问。有些浏览器经过询问之后,可以继续访问页面。但是微信端却没有反应。

请问,我如何使各种浏览器正常的访问我的https页面?
特别是微信端可以正常访问我的https页面?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

糖果控 2022-09-11 05:24:50

自签证书不被信任,你需要使用受信任的证书。

免费证书有:

  • StartSSL

  • Let's Encrypt

  • WoSign(国内证书)

低价证书:

  • Comodo PositiveSSL

其中StartSSLComodo PositiveSSL是1年有效期;Let's Encrypt是90天有效期,但支持自动renew。
不过不管申请哪一家的证书你都需要有一个自己的域名。


免费证书中StartSSL时效较长,但是申请较为复杂。
Let's Encrypt 申请比较简单,可以通过acme_tiny这个小工具来进行申请,这里是使用教程
沃通(WoSign)证书也是一年有效期(现已支持两年有效期),申请过程全中文,也值得推荐。点此申请

跨年 2022-09-11 05:24:50

自己生成的证书浏览器是没办法验证通过的。

梦魇绽荼蘼 2022-09-11 05:24:50

用Let's Encrypt之类的吧,自己签发的不行

贪了杯 2022-09-11 05:24:50

你的证书是不受信任的证书,因此不能被现有浏览器所认可,如果你想要实现自己的https服务,那么就需要购买受信任的证书签发机构所颁发的证书,或者将你的域名挂靠到受信任的证书颁发机构所颁发的证书上。
虽然有点绕口,但就是这么回事。原理就是这么的枯燥。。

枕头说它不想醒 2022-09-11 05:24:50

自己生成的证书,属于自签名证书,需要手机端先安装你生成的cert.pem,然后就可以像正常https网站一样访问。

前段时间也写过类似的项目:node-mitmproxy

烟柳画桥 2022-09-11 05:24:50

之前也用的StartSSL的免费证书,直到Chrome升级到57.0.2931.0之后,提示证书报错了。
后来发现QQ也可以申请一年的免费证书,提供商是Verisign的,感觉还是靠谱一点。
附上申请链接:https://console.qcloud.com/ssl

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文