我所拥有的是域名的Commodo Positive SSL SHA-2证书 webadd.in
提供给我的三个文件webadd_in.crt
webadd_in.p7b
webadd_in.ca-bundle
我的main.js文件
var express = require('express');
var fs = require('fs');
var app = express();
var bodyParser = require("body-parser");
var https = require("https");
app.use(bodyParser.urlencoded({ extended: false }));
var config = {
key: fs.readFileSync('/etc/ssl/ssl.key/webadd_in.in.key'),
cert: fs.readFileSync('/etc/ssl/ssl.crt/webadd_in.ca-bundle') //insert the the .ca-bundle file here
};
var port = 443;
app.set('port', port);
require('./routes')(app);
var server = https.createServer(config, app).listen(port, function(){
console.log("Express server listening on port " + port);
});
我的代码运行但没有任何输出。没有错误没有任何警告。 如果我删除ssl部分并更改端口
,它的工作原理我在这台服务器上有apache,但我有a2dismod ssl,端口443确实是免费的
此外,我想知道我是否可以在443以外的端口上运行此节点服务器,以便我可以像https://webadd.in:3030/
那样访问它答案 0 :(得分:0)
好的,如果你最终遇到这样的情况,可能的原因和解决方案。
注意:为了保持格式正确,我最后放置了链接和命令。
我因为链证书中的一些格式错误而被卡住了,这个错误是通过额外删除空格来解决的。
一些命令和资源
cat domain.crt COMODO_DV_SHA-256_bundle.crt >> domain_cert_chain.crt
注释: 在node.js目录中创建一个index.html文件(可以为空)。 将apache配置为仅在localhost上的端口8080上运行 将节点配置为仅在localhost上的端口3030上运行 重启apache节点和nginx nginx反向代理指南https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache
server { listen 80; listen 443; ssl off; server_name domain.in; ssl_certificate /etc/nginx/ssl/nginx_bundle.crt; ssl_certificate_key /etc/nginx/ssl/domain_in.key; root /var/www/html/; index index.php index.html index.htm; server_name domain.in; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } location ~ /\.ht { deny all; } } server { listen 3035; listen 443; ssl on; server_name domain.in; ssl_certificate /etc/nginx/ssl/nginx_bundle.crt; ssl_certificate_key /etc/nginx/ssl/domain_in.key; root /var/www/domainnodeapi/; index index.html index.htm; access_log /var/log/nginx/nginx.vhost.access.log; error_log /var/log/nginx/nginx.vhost.error.lo; client_max_body_size 10G; location / { proxy_pass http://127.0.0.1:3030; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering off; } }
sudo nginx -s reload
sudo service nginx restart
sudo service apache restart
使用pm2作为节点
如果您收到错误
nginx:[emerg] PEM_read_bio_X509_AUX(" /etc/nginx/ssl/domain.crt")失败(SSL:)
这是因为括号中的文件。检查格式错误。
如果您收到openssl错误/版本未知/找不到文件:
sudo apt-get purge openssl libssl-dev sudo apt-get install openssl libssl-dev
希望这会以某种方式帮助你。