https基础

面试题

https://blog.csdn.net/xihuangwutong/article/list/5?

TLS 有三大功能:内容加密,身份认证,数据完整性认证

内容加密是依赖于秘钥协商协议
数据完整性依赖MAC(message authentication code)
身份认证依赖于证书认证机制:一般浏览器和操作系统会维护一个收信任证书列表,
不可能让每个人都安装各个站点的证书,所以就有了CA,CA证书是广泛的内置系统根证书,会被绝大部分用户接受

CA会根据不同级别的认证颁发不同的证书:域名认证,公司认证,拓展认证

域名认证(确定申请人有这个域名就可以了,认证级别最低)
公司认证(证书里会显示公司的信息)
拓展认证(浏览器里直接显示公司的名字,认证几倍最高)
使用301进行重定向

Nginx:
server {
listent:80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}

apache
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTPS_HOST}%{REQUEST_URI}[R=301,L]

用户一般输入网址的时候不会输入协议名称,这个时候会点击链接或者301重定向
提示警告后继续访问,
这个时候可能会被攻击者获取http篡改,
HSTS严格传输可以阻止用户不接受不安全的证书

在网站的响应头里加入一个强制声明

Strict-transport-security:max-age=31536000 IncludeSubDomains
1
会在接下来的一年里子域名在浏览器里http会自动转换成HTTPS,无法忽略警告继续访问

HTTPS使用cookie的时候要加上set-cookie secure

参考:http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html
- https://imququ.com/post/web-proxy-2.html
---------------------
作者:xihuangwutong
来源:CSDN
原文:https://blog.csdn.net/xihuangwutong/article/details/54891963
版权声明:本文为博主原创文章,转载请附上博文链接!

上一篇:iOS使用Security.framework进行RSA 加密解密签名和验证签名


下一篇:【坑坑坑坑坑】fwrite没有把数据写到文件中???