我是这样理解HTTP和HTTPS区别的

为何要用https?

http协议的缺点

  • 通信使用明文,内容可能被窃听
  • 不验证通信方身份,有可能遭遇伪装
  • 无法证明报文的完整性,有可能已遭篡改

用https能解决这些问题么?

https是在http协议基础上加入加密处理和认证机制以及完整性保护,即http+加密+认证+完整性保护=https
HTTPS并非应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。
所谓https,其实就是身披SSL协议这层外壳的HTTP
我是这样理解HTTP和HTTPS区别的

  1. 加密传输
  2. 防止运营商劫持

如何配置https?

生成自签证书

sudo openssl genrsa -out server.key 2048

sudo openssl req -new -x509 -days 1826 -key server.key -out server.crt

修改apache配置

apache2.4
需开启的模块
LoadModule ssl_module libexec/apache2/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
配置虚拟主机
Include /private/etc/apache2/extra/httpd-vhosts.conf

sudo vim httpd-ssl.conf

<VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName www.domain.com:443
    SSLEngine on
    SSLCertificateFile /usr/local/apache/conf/server.crt
    SSLCertificateKeyFile /usr/local/apache/conf/server.key
</VirtualHost>

检测配置文件是否有错误
sudo apachectl configtest
重启apache
sudo apachectl restart

apache配置重定向

相关推荐