Express本地测试HTTPS的示例代码

网络编程 2025-03-29 16:44www.168986.cn编程入门

本文将为您介绍如何在本地测试Express的HTTPS功能。长沙网络推广认为这是一个很好的示例,现在分享给大家,并作为参考。让我们跟随长沙网络推广一起来了解吧。

一、我的环境

亚马逊(AWS)的ubuntu虚拟机

Node.js

OpenSSL

二、生成证书

为了本地测试HTTPS,我们需要生成自签名证书。运行以下命令将在您的当前文件夹生成名为localhost.key和localhost.cert的文件。

```bash

openssl genrsa -out localhost.key 2048

openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost

```

这里的“localhost”是域名,您可以根据您的实际情况进行替换。例如,如果您的虚拟机的域名是x.pute.amazonaws.,则需要将上述命令中的所有“localhost”替换为您的域名。

更新:您还可以使用以下命令生成证书和私钥:

```bash

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

```

如果不想用密码保护私钥,可以加上-nodes选项。通过-subj选项可以设置certificate的内容,将其中的localhost替换成你的域名。

三、代码

为了运行以下代码,您需要安装一些包:

```bash

npm init

npm i -S https express

```

接下来,创建名为index.js的文件,并输入以下内容:

```javascript

!/usr/bin/env node

var https = require('https');

var fs = require('fs');

var express = require('express');

var host = 'x.pute.amazonaws.'; // 请在此处输入您的域名

var options = {

key: fs.readFileSync('./' + host + '.key'),

cert: fs.readFileSync('./' + host + '.cert'),

requestCert: false,

rejectUnauthorized: false

};

var httpApp = express();

var app = express();

app.get('/', function (req, res) {

res.send('hi HTTPS');

});

httpApp.get('/', function (req, res) {

res.send('hi HTTP');

});

httpApp.listen(80, function () {

console.log('http on 80');

});

var server = https.createServer(options, app);

server.listen(443, function () {

console.log('https on 443');

});

```

四、启动服务器

在终端中运行以下命令启动服务器:

```bash

sudo node index.js

```

五、访问

在浏览器中访问以下URL,以测试HTTP和HTTPS服务器:

(将显示“hi HTTP”)

(将显示“hi HTTPS”)请确保将上述URL中的“x”替换为您的实际域名。以上就是本文的全部内容,希望对大家的学习有所帮助。也希望大家多多支持狼蚁SEO。 (完)

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by