效果可以看如下:
但是如果我们现在使用http来访问的话,访问不了。如下图所示:
因此我现在首先要做的是使用nginx配置下,当用户在浏览器下输入http请求的时候使用nginx重定向到https下即可。因此我们现在需要做一个简单的nginx重定向功能。
因此在我们的nginx中需要加如下重定向配置:
server { listen xxx.abc.com; server_name xxx.abc.com; rewrite ^/(.*)$ https://$host$1 permanent; }
因此nginx主要的配置代码如下:
server { listen xxx.abc.com; server_name xxx.abc.com; rewrite ^/(.*)$ https://$host$1 permanent; } server { listen 443 ssl; server_name xxx.abc.com; ssl_certificate cert/server.crt; ssl_certificate_key cert/server.key; ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers high:!anull:!md5; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:3001; } }
如上配置后,我们需要重新启动下nginx即可生效,我们在浏览器下输入域名 http://xxx.abc.com 后 会自动重定向到 https://xxx.abc.com/ 了,我们再来看下 我们网络上的请求有2个请求,如下所示:
如上请求可以看到,浏览器首先会向网站发起一次http请求(http://xxx.abc.com), 在得到一个重定向响应后,再会发起一次https请求并得到最终的响应内容。对用户来讲,它的操作是透明的,用户体验也是不错的,但是在https链接之前会存在一次明文的http请求和重定向。那么攻击者可以以中间人的方式劫持http请求。来进行后续的攻击。比如窃听数据。篡改请求或响应、跳转到钓鱼网站等操作。因此http请求是不够安全的,所以最近几年所有的网站都要以https来访问的。
那么以劫持http请求并跳转到钓鱼网站类为列子,来看看大致的劫持流程是如下这个样子的。
操作步骤如下:
1. 浏览器会发起一次http请求(比如http://xxx.abc.com). 发出请求后,攻击者会以中间人的身份来劫持该http请求。
2. 攻击者劫持该http请求后,会把当前请求转发给钓鱼网站(比如 http://xxx.yyy.com)。
3. 钓鱼网站会返回假冒的网页内容。
4. 最后攻击者把假冒的网页内容返回给浏览器。
如上http请求根本就没有重定向到https网站到,而是攻击者直接劫持了http请求,最终把钓鱼网站返回给浏览器了。因此如果直接http重定向的话,会存在一次http请求明文的问题,因此直接使用http重定向是不安全的,因此就出现了hsts来解决这个问题。下面我们来认识下hsts吧。
2. 认识下hsts
如上使用重定向的方式,把http重定向到https存在安全性问题,因为在重定向https之前会存在一次http明文的请求,那么攻击者很容易劫持http请求,因此现在我们想当用户浏览器发起http请求的时候,浏览器直接转换成https请求。然后通过https请求页面,这样的话,攻击者就一般很难进行攻击了。我们可以请看如下示意图,如下所示:
步骤可以理解为如下:
1. 用户在浏览器输入 http://xxx.abc.com 的时候,浏览器知道该域名需要使用https来进行通信。
2. 因此浏览器直接向网站发起https请求(比如https://xxx.abc.com) 这样的。
3. 网站返回响应的内容。
那么现在的问题就是说,浏览器怎么知道该域名需要使用https呢?因此这个时候我们出现了hsts了。
hsts是啥?
hsts的全称是 http strict-transport-security. 它是国际互联网工程组织ietf发布的一种互联网安全策略机制。采用hsts策略的网站将保证浏览器始终链接到该网站的https加密版本。不需要用户手动在uri地址栏中输入加密地址,来减少会话被劫持的风险。
hsts的基本语法如下:
strict-transport-security: max-age=expiretime [; includesubdomains] [; preload]
max-age 是必须的参数,它是一个以秒为单位的数值,它代表着hsts header的过期时间,一般设置为1年,即 31536000秒。
includesubdomains 是可选参数,如果设置该参数的话,那么意味着当前域名及其子域名均开启hsts的保护。
preload是可选参数,只有当你申请将自己的域名加入到浏览器内置列表的时候才需要使用到它。
下面我们先来看下百度的也是这样处理的,我们先在浏览器uri输入 http://www.baidu.com/ 后回车,浏览器会自动转化成 https://www.baidu.com/ 这样的请求了,但是我们使用chrome浏览器看网络下的请求可以看到如下会发送2次请求,如下所示:
第二次是https请求,如下所示:
我们可以看到如上,第一次请求状态码是307,并且请求头有这样的标识 "provisional headers are shown", 具体的含义可以理解为浏览器拦截了该请求,并且该请求并没有发送出去。因此浏览器发现该域名需要使用https来请求,所以就发了第二次https请求了。
nginx下配置hsts
在nginx配置文件上设置hsts响应头部,代码如下:
add_header strict-transport-security "max-age=172800; includesubdomains"
因此nginx的配置如下:
server { listen xxx.abc.com; server_name xxx.abc.com; rewrite ^/(.*)$ https://$host$1 permanent; } server { listen 443 ssl; server_name xxx.abc.com; add_header strict-transport-security "max-age=172800; includesubdomains"; ssl_certificate cert/server.crt; ssl_certificate_key cert/server.key; ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers high:!anull:!md5; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:3001; } }
然后nginx配置保存,然后重启。
当我重启后,第一次使用https方式访问我的网站,nginx会告诉客户端浏览器,以后如果用户输入的是http,也要让浏览器以https来访问我的nginx服务器,如下所示:
但是如果nginx重启后,第一次使用http访问的话,虽然跳转了,但是并没有使用hsts了,因为要跳转到https,才会使用hsts。但是当我再输入http了就会有307状态码,并且有 "provisional headers are shown" 这样的提示。
理解hsts preload list
hsts虽然可以解决https的降级攻击,但是对于hsts生效前首次的http请求,依然是无法避免http请求被劫持的问题,比如我们第一次浏览器清除缓存,然后第一次使用http请求的话,第一次http也是明文传输的,当跳转到https后会使用hsts的,以后只要浏览器缓存不清除的话,nginx不重启的话,都会使用hsts保护的。因此为了解决第一次http请求的问题,浏览器厂商们为了解决这个问题,提出了 hsts preload list 的方案,内置一份可以定期更新的表,对于列表中的域名,即使用户之前没有访问过,也会使用https协议请求的。
目前这个preload list由google chrome维护,chrome、firefox、safari、ie 11和microsoft edge都在使用。如果要想把自己的域名加进这个列表,首先需要满足以下条件:
1. 拥有合法的证书(如果使用sha-1证书,过期时间必须早于2016年);
2. 将所有http流量重定向到https;
3. 确保所有子域名都启用了https;
4. 输出hsts响应头:
5. max-age不能低于18周(10886400秒);
6. 必须指定includesubdomains参数;
7. 必须指定preload参数;
即便满足了上述所有条件,也不一定能进入hsts preload list,更多信息可以查看:https://hstspreload.org/。
通过chrome的chrome://net-internals/#hsts工具,可以查询某个网站是否在preloadlist之中,还可以手动把某个域名加到本机preload list。
hsts缺点
hsts并不是http会话劫持的完美解决方案。用户首次访问某网站是不受hsts保护的。这是因为首次访问时,浏览器还未收到hsts,所以仍有可能通过明文http来访问。
如果用户通过http访问hsts保护的网站时,以下几种情况存在降级劫持可能:
1. 以前从未访问过该网站。
2. 最近重新安装了其操作系统。
3. 最近重新安装了其浏览器。
4. 切换到新的浏览器。
5. 删除浏览器的缓存。
6. 最近没访问过该站并且max-age过期了。
那么解决该问题的方法,可以使用上面介绍的 hsts preload list 方法。
支持hsts浏览器
目前主流浏览器都已经支持hsts特性,具体可参考下面列表:
google chrome 4及以上版本
firefox 4及以上版本
opera 12及以上版本
safari从os x mavericks起
internet explorer及以上版本
위 내용은 nginx가 브라우저가 HTTPS 액세스를 리디렉션하도록 강제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

새해 초반, 레이 준은 새해 초에 2025 년에 새해 3 번의 소원을 공유했으며,이 4 시간 반 길이의 라이브 방송은 많은 관심을 끌었습니다. Lei Jun의 세 가지 주요 소원은 다음과 같습니다. 첫째, 300,000 대의 차량의 배달 목표를 달성하고 압력을 완화하며 더 이상 진전에 따라 잡지 않습니다. 둘째, 더 많은 여행 시간을 보내고, 전 세계의 아름다운 경치를 즐기고, 특별한 음식을 맛보고, 일과 함께 자동차 테스트를 수행하십시오. 셋째, 체력을 고수하고 체육관에서 100 번 확인하여 몸을 강화하십시오. 레이 준 (Lei Jun)은 라이브 방송에서 2024 년에 소형 일정으로 여행했다고 인정했기 때문에 종종 짧은 시간 동안 만 머물면서 현지 문화를 깊이 경험하기가 어렵습니다. 예를 들어, 독일의 New North Speedway에서 그는 단 8 시간 동안 머물 렀습니다. 따라서 새해에는 일과 삶과 여행의 균형을 향상시키기를 희망합니다.

9 위와 브랜드 대변인 Yi Yang Qianxi가 만든 마이크로 필름 "메모리 여행"은 2024 년에 여러 권위있는 미디어 상을 수상했으며 올해의 걸작이되었습니다. 이 작품은 독특한 이야기 스타일, 절묘한 제작 및 진지한 감정으로 업계로부터 높은 찬사를 받았습니다. 2024 상과 영예 : 2024 Gold T 큰

최근 PCONLINE2024 ZHIZHEN 기술 상이 공식적으로 발표되었으며 Agon Aidong QD-OLED E-Sports Display AG326UD가 "올해의 기술 혁신"상을 수상했습니다. 이 영광은 업계의 기술적 장점과 시장 성과에 대한 업계의 높은 인식을 나타낼뿐만 아니라 E-Sports Display 기술 분야에서 Agon의 혁신적인 기능과 뛰어난 성과를 완전히 반영합니다. 01. 기술의 미래를 살펴보면 PCONLINE ZHIZHEN 기술 상의 권위있는 가치는 기술 산업의 날씨 금지입니다. Pconline Zhizhen Technology Award는 엄격한 평가 시스템과 심도있는 산업 분석으로 광범위한 업계 인정을 성공적으로 승리했습니다. 이상은 기술 산업의 개발을 촉진하는 뛰어난 제품 및 브랜드를 항상 헌신하고 기술을 다루기 위해 노력해 왔습니다.

Sonyinteractiveent intustionment (SIE, Sony Interactive Entertainment)의 최고 건축가 인 Mark Cerny는 성능 업그레이드 된 AMDRDNA2.X 아키텍처 GPU 및 AMD와 함께 기계 학습/인공 지능 프로그램 코드 "Amethylst"를 포함하여 차세대 호스트 PlayStation5Pro (PS5PRO)에 대한 더 많은 하드웨어 세부 정보를 발표했습니다. PS5PRO 성능 향상의 초점은 여전히 강력한 GPU, Advanced Ray Tracing 및 AI 구동 PSSR Super-Resolution 기능을 포함하여 세 가지 기둥에 있습니다. GPU는 Sony가 RDNA2.x라는 맞춤형 AMDRDNA2 아키텍처를 채택하며 RDNA3 아키텍처가 있습니다.

EU의 일부 Windows 내부 채널에서 Microsoft의 Windows 검색 기능 개선이 테스트되었습니다. 이전에 통합 Windows 검색 기능은 사용자에 의해 비판을 받았으며 경험이 좋지 않았습니다. 이 업데이트는 검색 기능을 두 부분으로 나눕니다. 로컬 검색 및 Bing 기반 웹 검색을 위해 사용자 경험을 향상시킵니다. 검색 인터페이스의 새 버전은 기본적으로 로컬 파일 검색을 수행합니다. 온라인으로 검색 해야하는 경우 "Microsoft BingwebSearch"탭을 클릭하여 전환해야합니다. 전환 후 검색 바에는 사용자가 키워드를 입력 할 수있는 "Microsoft Bingwebsearch :"가 표시됩니다. 이 움직임은 로컬 검색 결과와 Bing 검색 결과의 혼합을 효과적으로 피합니다.

Capcom의 "Monster Hunter"시리즈 20 주년을 축하하기 위해 Baodao Club은 독특한 잡지 세트 인 "Monster Hunter"테마 바베큐 타이머 및 동반 컵을 시작했습니다. 이 세트는 12 월 27 일 일본 전국의 홈 편의점에서 이용할 수 있으며 3,498 엔으로 가격이 책정됩니다. 이 잡지 세트의 가장 큰 하이라이트는 대화 형 바베큐 타이머로 일련의 게임에서 클래식 바베큐 장면을 완벽하게 복제합니다. 타이머는 LED 불꽃 효과 및 게임 BGM이 장착 된 이전 버전의 바베큐 도구로 설계되어 실제 바베큐 프로세스 중에 사냥의 재미를 경험할 수 있습니다. 회전 핸들은 뒤집힌 바베큐를 시뮬레이션합니다. 성공적으로 베이킹을 한 후 "Baked!"의 음성 프롬프트가 있습니다. 재생됩니다. 타이머 크기는 약 9.5cm (높이) x 10.7cm (너비) x 8cm (깊이), 내장 L입니다.

Xiaomi Auto의 첫 번째 기념일 축하 행사는 자동차 소유자에게 새해 선물을 줄 것입니다! Xiaomi Auto의 공식 Weibo는 작년에 배달량이 130,000 대의 차량을 초과 한 후 Lei Jun의 클래식 인용문“Areyouok?”를 제공 할 것이라고 발표했습니다. 모든 Xiaomi SU7 소유자 및 예비 소유자에게. 숫자는 제한되어 있으며 무료로받을 수 있습니다! 활동 시간 : 2024 년 12 월 20 일 2025 년 1 월 20 일에 2024 년 12 월 20 일 오후 4시. 무료로 밸브 코어 캡. 이 밸브 코어 캡은 올해 9 월에 처음 출시되었으며 밝은 노란색 PVC 및 황동 재료로 만들어졌습니다. 황동 코어는 직접 내장되어 안전한 운전을 보장하고 떨어지지 않기 쉽습니다. 널리 사용되는

HDMI2.2 표준은 2025 CES 전시회 전날에 공식적으로 발표 될 것으로 예상된다. HDMiforum은 1 월 6 일 에이 새로운 세대의 비디오 신호 전송 프로토콜 사양을 발표 할 계획입니다. 2017 년에 출시 된 HDMI2.1 표준은 48Gbps의 최대 대역폭을, 4K144Hz 및 8K30Hz 비디오 전송을 지원하며 DSC 기술로 최대 10k120Hz가 될 수 있습니다. HDMI2.2는 대역폭을 크게 증가시키고, 해상도와 새로 고침 비율을 지원하며, 새로운 와이어를 채택 할 것으로 예상됩니다. 특정 사양은 아직 공개되지 않았지만 HDMI2.2는 HDMI2.1의 48GBPS 대역폭 및 10240*4320 해상도 한계를 능가 할 것입니다. DisplayPort2.1은 20에 이르렀습니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Dreamweaver Mac版
시각적 웹 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
