-
香港服务器租用配置时选HTTP还是HTTPS?
虽说HTTPS在安全性上比HTTP强,但并不是所有网站都需要用HTTPS,在香港服务器租用配置中需要注意这个问题。 自互联网出现以来,超文本传输协议HTTP协议被广泛用于在Web浏览器和网站服务器之间传递信息。但随着互联网的发展,另一种协议——HTTPS出现,并与HTTP一同服务于这个互联网世界。HTTPS的出现是为了代替HTTP协议在安全不足的方面。 HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。而为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 HTTP与HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTP与HTTPS的特点差异 1.HTTPS协议需要使用ca申请证书,一般免费证书很少,因此是需要支付费用的。 2.HTTP是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的ssl加密传输协议,因此HTTPS在安全性上比HTTP高。 3.HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,http使用的是80,HTTPS使用的是443。 4.HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,相对于HTTP协议更安全也更复杂。 5.HTTPS主要作用可以分为两种,一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询 虽说HTTPS在安全性上比HTTP强,但并不是所有网站都需要用HTTPS,这个还是需要根据不同行业特点来决定的。 MMCloud提供SSL证书服务,价格低至299/年;MMCloud为活动期间购买的用户提供免费安装ssl证书的技术支持服务,免费定制安全解决方案,让数据更安全!有任何问题可随时咨询在线客服!
-
如何在Ubuntu 20.04上使用Apache启用HTTP/2协议
本教程将向您展示如何在Ubuntu20.04上启用HTTP/2协议,以及如何在Apache上使用服务器推送。您可能知道,HTTP/2比HTTP/1.1协议快得多,主要是因为前者使web浏览器能够在单个TCP连接(多路复用)上同时向web服务器发送多个请求,并无序接收响应。 如今,互联网用户的平均带宽比以前高得多,这有助于更快地加载网页。然而,在带宽达到5Mbps后,它对页面加载时间几乎没有影响。无论您使用的是5Mbps还是10Mbps,网页的加载时间几乎相同。如今,对页面加载时间有很大影响的是延迟和往返次数。这是HTTP/2多路复用解决的问题之一。 先决条件 HTTP/2规范允许纯文本HTTP,但实际上,所有主流web浏览器都以需要HTTPS的方式实现HTTP/2。因此,在启用HTTP/2协议之前,您需要在网站上启用HTTPS。您可以阅读下面的详细指南来启用HTTPS 如何在Apache上正确启用HTTPS,让我们在Ubuntu上加密。 Apache中的HTTP/2从2.4.26版开始就可以生产。因此,您需要使用mod_http2(Apache HTTP/2模块)构建Apache 2.4.26或更高版本。Ubuntu 20.04附带Apache 2.4.41,可通过以下方式进行检查: apache2-v 样本输出: 服务器版本:Apache/2.4.41(Ubuntu)服务器版本:2020-04-13T17:19:17 满足上述两个要求后,请按照以下说明在Apache中启用HTTP/2。 在Apache虚拟主机上启用HTTP/2协议 首先,需要启用HTTP/2模块。 sudo a2enmod http2 然后编辑Apache虚拟主机文件。如果您使用Let's Encrypt启用了HTTPS,那么SSL虚拟主机将被创建为一个以le SSL结尾的单独文件。形态。 sudo nano/etc/apache2/sites enabled/your site le ssl。形态 在打开后放置以下指令<;VirtualHost*:443>;标签 协议h2 http/1.1 保存并关闭文件。然后重启Apache,使更改生效。 sudo systemctl重启apache2 如果您使用的是mod_php 如果您将mod_php模块与Apache一起使用,那么您将使用prefork MPM模块。不幸的是,Mod_http2不支持prefork。您可以使用event MPM模块来支持HTTP/2,这要求您使用FastCGI运行PHP,因为event MPM与mod_PHP不兼容。按照以下步骤从预工作切换到事件MPM。 禁用PHP7模块。 sudo a2dismod php7。4 禁用预工作MPM模块。 sudo a2dismod mpm_prefork 启用事件MPM、Fast_CGI和setenvif模块。 sudo a2enmod mpm_事件代理_fcgi setenvif 安装PHP-FPM sudo apt安装php7。4-fpm 启动PHP-FPM sudo systemctl启动php7。4-fpm 允许PHP-FPM在启动时启动。 sudo systemctl启用php7。4-fpm 使用以下命令将PHP-FPM设置为Apache的PHP处理程序,该命令将启用/etc/apache2/conf available/php7。4-fpm。conf文件。 sudo a2enconf php7。4-fpm 重新启动Apache以使更改生效。 sudo systemctl重启apache2 测验 你怎么知道你的网站实际使用的是HTTP2协议? 在Firefox或Google Chrome中,加载站点页面,然后按Ctrl+Shift+I打开开发者工具,单击网络选项卡。您可以看到用于您的域的协议。 你也可以在谷歌浏览器中安装HTTP/2和SPDY指示器扩展。 在Firefox中安装HTTP/2指示符扩展。 KeyCDN提供的在线HTTP/2测试工具可以告诉您的站点是否支持HTTP/2和ALPN。 请注意,您可能需要清除浏览器的缓存,因为缓存的对象可能被错误地标记为HTTP/1.1协议。 如何启用服务器推送 HTTP/2附带了一个名为“服务器推送”的功能,该功能允许web服务器发送web浏览器没有要求的资源,但加载网页时需要这些资源。例如,如果web浏览器请求一个HTML文档,那么web服务器知道客户端将需要相关联的CSS文件,并将其与HTML文档一起发送,从而消除了web浏览器发送CSS请求的需要,因此减少了一次往返。 这里,我以WordPress为例。WordPress网站通常需要以下资源。 风格css:主样式表,位于主题目录的根目录中。 jquery。js:JQuery库 jquery迁移。min.js:旧的JQuery 可湿性粉剂嵌入。min.js:用于嵌入视频 要将这些资源推送到客户端,请在<;VirtualHost>;块用你自己的WordPress主题名替换Twenty17。 Header add Link“<;/wp content/themes/twentyeven/style.css>;;rel=preload”Header add Link“<;/wp includes/js/jquery/jquery.js>;;rel=preload”Header add Link“<;/wp includes/js/wp embed.min.js>;;rel=preload” 保存并关闭文件。然后重启Apache,使更改生效。 sudo systemctl重启apache2 请注意,您需要在函数中添加以下代码。php文件从WordPress CSS和JavaScript文件中删除版本号。WordPress更新时,如果将版本号添加到这些文件中,服务器推送将无法工作。 //从样式添加过滤器中删除WP版本('style_loader_src','sdt_Remove_ver_css_js',9999);//从脚本中删除WP版本添加过滤器('script_loader_src','sdt_Remove_ver_css_js',9999);//函数删除版本号函数sdt_remove_ver_css_js($src){if(strpos($src,'ver='))$src=remove_query_arg('ver',$src);返回$src;} 测试服务器推送 在Google Chrome浏览器中,加载页面,然后按Ctrl+Shift+I打开开发者工具,然后单击网络选项卡。按F5重新加载。从下面的屏幕截图可以看出,服务器推送正在我的一个网站上运行。如果看到“来自内存缓存”,则右键单击它,清除浏览器缓存并重新加载。 下一步 就这样!我希望本教程能帮助您在Ubuntu 20.04上启用Apache中的HTTP/2并使用服务器推送。您可能还想设置ModSecurity web应用程序防火墙,以保护您的网站免受黑客攻击。 如何在Debian/Ubuntu上使用Apache设置ModSecurity 一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。
-
如何在Debian 8 Jessie服务器上使用Nginx启用HTTP2协议
本教程将向您展示如何在Debian 8服务器上使用Nginx启用HTTP/2协议以加快网页加载。有两个要求。 Nginx 1.9.5或更高版本,使用OpenSSL 1.0.2构建 启用HTTPS 让我们逐一解决这些问题。 从Jessie Backports Repo安装Nginx ALPN(应用层协议协商)是一个TLS扩展,允许服务器与web浏览器协商HTTP/2协议。没有ALPN,即使web服务器和web浏览器都支持HTTP/2,也无法建立HTTP/2连接。OpenSSL库支持1.0.2版的ALPN声明。 Debian 8拥有OpenSSL 1.0.1。要检查OpenSSL版本,请运行 openssl version 请注意,无需在系统上安装OpenSSL 1.0.2。我们只需要使用OpenSSL 1.0.2构建的Nginx 1.9.5或更高版本。Nginx在1.9.5版中增加了对HTTP/2的支持。默认的Debian 8回购协议包含Nginx 1.6.2。幸运的是,Jessie backports repo提供了使用OpenSSL 1.0.2l构建的Nginx 1.10.3。 要添加此存储库,请创建源列表文件。 sudo nano /etc/apt/sources.list.d/jessie-backports.list 将以下行添加到此文件。 deb http://ftp.debian.org/debian jessie-backports main 保存并关闭文件。然后从Jessie backports存储库更新包索引并安装Nginx。 sudo apt update sudo apt -t jessie-backports install nginx 检查Nginx版本并配置参数。 sudo nginx -V 输出: nginx version: nginx/1.10.3 built with OpenSSL 1.0.2l 25 May 2017 TLS SNI support enabled Nginx。org repo包含适用于Debian 8的最新版本的Nginx。但该包是针对OpenSSL 1.0.1构建的,因此不支持ALPN。 在Debian 8上安装SSL证书 我们可以安装由Let's Encrypt颁发的免费SSL证书。首先,在Jessie Backports repo的Debian 8上安装Let's Encrypt client(Certbot)。Python certbot nginx是certbot的nginx插件。 sudo apt install -t jessie-backports certbot python-certbot-nginx 现在,如果您已经配置了Nginx虚拟主机,那么使用Nginx插件获取并安装SSL证书,如下所示 sudo certbot --nginx --agree-tos -d example.com --redirect --staple-ocsp --must-staple --email your-email-address 说明: --nginx:使用nginx插件 --同意:同意让我们加密服务条款 --重定向:为新验证的vhost自动将所有HTTP通信重定向到HTTPS。 --装订ocsp:启用ocsp装订 --必须装订:将OCSP必须装订扩展添加到证书 --电子邮件:用于注册和恢复联系人的电子邮件 启用HTTP2协议 默认情况下,Certbot不会为Nginx配置HTTP/2。要启用HTTP/2,请编辑Nginx虚拟主机文件。找到以下指令。 listen 443 ssl; 然后像下面那样添加http2。 listen 443 ssl http2; 保存并关闭文件。重新加载Nginx。 sudo systemctl reload nginx 测验 你怎么知道你的网站实际使用的是HTTP2协议? 在Firefox或Google Chrome中,加载站点页面,然后按Ctrl+Shift+I打开开发者工具,单击网络选项卡。您可以看到用于您的域的协议。 你也可以在谷歌浏览器中安装HTTP/2和SPDY指示器扩展。 在Firefox中安装HTTP/2指示符扩展。 KeyCDN提供的在线HTTP/2测试工具可以告诉您的站点是否支持HTTP/2和ALPN。 请注意,您可能需要清除浏览器的缓存,因为缓存的对象可能被错误地标记为HTTP/1.1协议。 如何启用服务器推送 HTTP/2附带了一个名为“服务器推送”的功能,该功能允许web服务器发送web浏览器没有要求但加载网页所需的资源。例如,如果web浏览器请求一个HTML文档,那么web服务器知道客户端将需要相关联的CSS文件,并将其与HTML文档一起发送,从而消除了web浏览器发送CSS请求的需要,因此减少了一次往返。 这里,我以WordPress为例。WordPress网站通常需要以下资源。 风格css:主样式表,位于主题目录的根目录中。 jquery。js:JQuery库 jquery迁移。min.js:旧的JQuery 可湿性粉剂嵌入。min.js:用于嵌入视频 要将这些资源推送到客户端,请在服务器块中添加以下指令。用你自己的WordPress主题名替换Twenty17。 http2_push /wp-content/themes/twentyseventeen/style.css; http2_push /wp-includes/js/jquery/jquery.js; http2_push /wp-includes/js/jquery/jquery-migrate.min.js; http2_push /wp-includes/js/wp-embed.min.js; 保存并关闭文件。然后重新启动Nginx,使更改生效。 sudo systemctl restart nginx 请注意,您需要在函数中添加以下代码。php文件从WordPress CSS和JavaScript文件中删除版本号。WordPress更新时,如果将版本号添加到这些文件中,服务器推送将无法工作。 // Remove WP Version From Styles add_filter( 'style_loader_src', 'sdt_remove_ver_css_js', 9999 ); // Remove WP Version From Scripts add_filter( 'script_loader_src', 'sdt_remove_ver_css_js', 9999 ); // Function to remove version numbers function sdt_remove_ver_css_js( $src ) { if ( strpos( $src, 'ver=' ) ) $src = remove_query_arg( 'ver', $src ); return $src; } 测试服务器推送 在Google Chrome浏览器中,加载页面,然后按Ctrl+Shift+I打开开发者工具,然后单击网络选项卡。按F5重新加载。从下面的屏幕截图可以看出,服务器推送正在我的一个网站上运行。如果看到“来自内存缓存”,则右键单击它,清除浏览器缓存并重新加载。 改进 Certbot Nginx插件还不成熟。在使用Nginx插件后,由于使用了弱密钥交换参数,我在SSL实验室测试中得了B。Mozilla SSL配置生成器是帮助您创建现代SSL配置的好工具。 就这样!我希望本教程能帮助您在Debian 8服务器上使用Nginx启用HTTP/2。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。