网站使用https协议
了解https
HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层。HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为443。
SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:
- 数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;
 - 用户可以通过服务器证书验证他所访问的网站是否真实可靠。
 
获取SSL证书
正式使用的话肯定是付钱由CA机构给颁发合法证书;部分CA机构也提供免费证书。
可申请的CA机构举例:
1、阿里云
2、StartSSL
具体申请步骤请自行查阅。
内部使用可以自己生成SSL证书(这个用户访问会提示证书无效或过期,存在安全隐患等等,内部人用直接信任继续访问即可使用),一般情况下用不到。
内部生成SSL证书步骤:
# 生成一个RSA密钥
$ openssl genrsa -des3 -out ssltest.key 1024
# 拷贝一个不需要输入密码的密钥文件
$ openssl rsa -in ssltest.key -out ssltest_nopass.key
# 生成一个证书请求
$ openssl req -new -key ssltest.key -out ssltest.csr
# 自己签发证书
$ openssl x509 -req -days 365 -in ssltest.csr -signkey ssltest.key -out ssltest.crt
第3步是生成证书请求,会提示输入省份、城市、域名信息等,重要的是,email一定要是你的域名后缀的。这样就有一个 csr 文件了,提交给 ssl 提供商的时候就是这个 csr 文件。
当然我这里并没有向证书提供商申请,而是在第4步自己签发了证书。到这里证书就生成成功到目标目录下,名字为ssltest.crt,还有ssltest_nopass.key,名字可以根据自己需要在生成的时候进行修改。
服务器启用https
以nginx服务器示例。我们只需要在自己网站的配置文件nginx.conf中的server端增加以下配置;
listen 443 ssl;
# ssl on;
ssl_certificate /etc/nginx/ssltest.crt;
ssl_certificate_key /etc/nginx/ssltest_nopass.key;
完整示例:
server {
    listen      443 ssl;
    listen       80;
    server_name  52fhy.com www.52fhy.com;
    index index.php index.html index.htm;
    root /www/52fhy.com/;
    #ssl on;
    ssl_certificate_key  /usr/local/nginx/conf/52fhy.com.key;
    ssl_certificate  /usr/local/nginx/conf/1_52fhy.com_bundle.crt;
    if ($scheme = http) {
    # rewrite ^(.*)$  https://$host$1 permanent;
    }   
    location ~ .*\.(php|php5)?$
    {
        #fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires 30d;
    }
    location ~ .*\.(js|css)?$
    {
        expires 1h;
    }   
    access_log  /usr/local/nginx/log/access/52fhy.com.log;
}
注意:这个
ssl on我本来是加上的,但是发现这样http就不能访问了,去掉后且listen 443 ssl能同时支持http和https。listen 443 ssl表示仅443端口使用ssl。
重启之后网站就可以用https访问啦,同时还支持http访问。
常见问题
网页引入的站外资源加载不了
例如页面引入了百度地图的资源,打开控制台发现使用https后加载不了,直接block了。
原因是览器默认是不允许在 https 里面引用 http 资源的。
解决办法是将http://改成相对协议//。具体使用方法为:
<img src="//domain.com/img/logo.png">
简而言之,就是将URL的协议(http、https)去掉,只保留//及后面的内容。这样,在使用https的网站中,浏览器会通过https请求URL,否则就通过http发送请求。
当然,如果站外链接的资源不支持https还是加载不了的。这时候可以采用其它方法,如使用 iframe,或者使用nginx方向代理将https转向http。
参考
1、图解https协议 - - 博客频道 - CSDN.NET
http://blog.csdn.net/yufaw/article/details/8515889
2、https 页面中引入 http 资源的解决方式 - 大前端 - SegmentFault
https://segmentfault.com/a/1190000004200361?utm_source=Weibo
网站使用https协议的更多相关文章
- 分享一个免费SSL证书申请网站,给网站开启https协议 | 张戈博客
		
这些天,由于公司的业务需求,接触到了ssl证书和https协议.博客前几篇文章也分享了在WEB服务器上安装SSL证书,为网站开启https协议的教程,感兴趣的童鞋可以前往查看相关文章: <Lin ...
 - IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)
		
IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161 一.HTTPS 协议介绍 1,什么是 HTTP ...
 - 网站转为https协议,苹果商店应用转为https协议总结
		
log_format www.44755.com '$remote_addr - $remote_user [$time_local] "$request" ' '$status ...
 - 为IIS服务器配置SSL,并设置为默认使用https协议访问网站
		
要使网站支持https协议,需要SSL证书,我的服务器和域名都是在阿里云购买的,所以这里我演示阿里云获取SSL证书的方法 我先说下我的服务器环境:windows server 2012 + IIS8. ...
 - 服务器配置https协议,三种免费的方法
		
最近想搞一个网站玩玩,发布网站用https协议已经是大势所趋了.例如微信小程序,不使用https协议根本不让接入.所以,分享一下我尝试过的三种方法. 1.Linux自签(OPENSSL生成SSL自签证 ...
 - fiddler抓取火狐浏览器上https协议请求
		
前言:现在很多网站采用https协议,当打开fiddler时.浏览https协议的网站会提示不安全,若使用fiddler抓取https协议的请求,则需要向浏览器导入证书,才能抓取https协议的请求, ...
 - IIS同时实现网站部分使用https协议访问另一部分http访问
		
一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同 ...
 - 大型网站的 HTTPS 实践(1):HTTPS 协议和原理
		
转自:http://op.baidu.com/2015/04/https-s01a01/ 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重 ...
 - 大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理
		
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt387 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 ...
 
随机推荐
- 总结:Mac前端开发环境的搭建(配置)
			
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
 - 说说Makefile那些事儿
			
说说Makefile那些事儿 |扬说|透过现象看本质 工作至今,一直对Makefile半知半解.突然某天幡然醒悟,觉得此举极为不妥,只得洗心革面从头学来,以前许多不明觉厉之处顿时茅塞顿开,想想好记性不 ...
 - RabbitMq应用二
			
在应用一中,基本的消息队列使用已经完成了,在实际项目中,一定会出现各种各样的需求和问题,rabbitmq内置的很多强大机制和功能会帮助我们解决很多的问题,下面就一个一个的一起学习一下. 消息响应机制 ...
 - SQL Server on Linux 理由浅析
			
SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...
 - ASP.NET是如何在IIS下工作的
			
ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的不同,导致ASP.NET的工作原理也发生了相应的变化. IIS6(IIS7的经典模式)与IIS7的集成模式的不同 IIS6 ...
 - 使用AWS亚马逊云搭建Gmail转发服务(三)
			
title: 使用AWS亚马逊云搭建Gmail转发服务(三) author:青南 date: 2015-01-02 15:42:22 categories: [Python] tags: [log,G ...
 - [APUE]系统数据文件与信息
			
一.口令文件 UNIX口令文件包含下表中的各个字段,这些字段包含在 由于历史原因,口令文件是/bin/passwd,而且是一个文本文件,每一行都包括了上表中的七个字段,字段之间用":&quo ...
 - css中的浮动与三种清除浮动的方法
			
说到浮动之前,先说一下CSS中margin属性的两种特殊现象 1, 外边距的合并现象: 如果两个div上下排序,给上面一个div设置margin-bottom,给下面一个div设置margin-top ...
 - android http 抓包
			
有时候想开发的时候想看APP发出的http请求和响应是什么,这就需要抓包了,这可以得到一些不为人知的api,比如还可以干些“坏事”... 需要工具: Fiddler2 抓包(点击下载) Android ...
 - C#——传值参数(2)
			
//我的C#是跟着猛哥(刘铁猛)(算是我的正式老师)<C#语言入门详解>学习的,微信上猛哥也给我讲解了一些不懂得地方,对于我来说简直是一笔巨额财富,难得良师! 这次与大家共同学习C#中的 ...