公司的网站需要接入https,借此机会研究了下,小有所得,特此分享。
这第一步呢,自然是申请证书,这么高端大气上档次(也许还要花钱)的操作公司自然不会让我来搞,所以我直接到手的就是这个(免费的还是很好申请的,有需要请自行百度)
这里用nginx为例,打开nginx里面就是证书和key![]()
首先把这两个证书放在服务器nginx安装目录下的一个文件夹里,文件夹名字随便起,不过为了便于识别,就叫做cert
服务器的配置超级简单,这里列出两种方法,我第二种成功了,第一种没有成功
第一种:
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/xxx.pem;注意这里,这样子写会报错,正确做法是写全路径/usr/local/nginx/cert/*******.crt;key也同样的写法,这里的pem文件和刚刚截图的crt文件是一个意思
ssl_certificate_key cert/xxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
第二种方法:
这种方法是我成功了的,也比较推荐,毕竟代码少~
server{
listen 443 ssl;
server_name _;
ssl on;
ssl_certificate /usr/local/nginx/cert/******.crt;
ssl_certificate_key /usr/local/nginx/cert/*********.key;
}
搞完了保存退出就好了,重启下nginx,试试https访问。
但是你会发现直接输入网址,比如www.xxx.com是不会进入https的,这时候就需要写一个跳转规则
方法一:
rewrite ^(.*)$ https://$server_name$1 permanent;
方法二:适用于 80端口和443 配置在同一个 server{}内
if ($server_port = 80) {
rewrite ^(.*)$ https://kaisuo.qbchoice.com$1 permanent;
}
配置完网站还需要注意的就是屏蔽掉IP访问。方法也很是简单
server
{
listen 80 default;
return 500;
}

0 条评论