公司的网站需要接入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; 
}

分类: nginx

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据