获取证书
可以通过购买等途径获得证书。
证书具体获得方法可以查阅购买证书的网站的文档。
然后一波操作之后得到两个文件zhangdanyang.com.crt
和zhangdanyang.com.key
。
获得之后我们通过ftp工具(winscp,FileZilla等)上传到 /etc/https/
目录下。(目录随意,后面配置的路径跟这个相匹配即可,这里以此为例。)
nginx 部署方法
配置 nginx.conf 文件即可。
注:通过 yum 安装的 nginx 默认配置文件在/etc/nginx/
目录下。
配置文件大致如下:
下面配置实现了http自动重定向到https的链接。
【http部分】
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name zhangdanyang.com;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
rewrite ^(.*) https://$host$1 permanent;
}
【https部分】
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name zhangdanyang.com;
root /usr/share/nginx/html;
ssl_certificate "/etc/https/zhangdanyang.com.crt";
ssl_certificate_key "/etc/https/zhangdanyang.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
nodejs 部署方法
var express = require('express');
var app = express();
var server = require('http').Server(app);
var fs = require('fs');
var privateKey = fs.readFileSync('/etc/https/zhangdanyang.com.key', 'utf8');
var certificate = fs.readFileSync('/etc/https/zhangdanyang.com.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var httpsServer = require('https').createServer(credentials, app);
//其他代码...
server.listen(80, function() {
var host = server.address().address;
var port = server.address().port;
console.log('App listening at http://%s:%s', host, port);
});
httpsServer.listen(443, function() {
var host = httpsServer.address().address;
var port = httpsServer.address().port;
console.log('App listening at http://%s:%s', host, port);
});
如果已有项目,想要实现nodejs中的http自动重定向到https。我的处理方法如下:
- 使用 node 部署项目到443端口 实现https
-
- 使用 nginx 开放80端口并使其重定向,实现http定向到https。
server {
listen 80;
server_name zhangdanyang.com;
rewrite ^(.*)$ https://zhangdanyang.com$1 permanent;
}
附:生成未经过认证的证书方法
没有证书的话,可以在本地测试使用。
openssl genrsa 1024 > /path/to/private.pem
openssl req -new -key /path/to/private.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey /path/to/private.pem -out /path/to/file.crt
最后得到两个需要的文件 private.pem
(.key文件) file.crt
网友评论