共计 1814 个字符,预计需要花费 5 分钟才能阅读完成。
一、HTTPS 简述随着网络的日常,信息安全越来越重要,传统的网站都是 http 协议明文传输,而 HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
那 https 到底是怎么开启的,随着疑问自己也了解 https 配置原理并在 Ubuntu 服务器上开启了 https。
二、配置证书
配置 https 一个很重要的步骤就是配置证书。
1、创建证书
sudo apt-get install ssl-cert
make-ssl-cert 生成证书的方法有两种,一种是根据生成按工具默认的方式生成,一种是按模板文件生成
#默认的方式生成
sudo make-ssl-cert generate-default-snakeoil
#按模板文件生成
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/apache2.pem
2、通过 openssl 命令行创建自签名证书(这里生成的证书也采用 pem 格式,这个 pem 格式档案中包含了私钥和公钥(证书) 两部分内容。如果你将 keyout 和 out 分别采用不同的文件名,那 keyout 和 out 所对应的文件就会分别存放私钥和公钥(证书)。)
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/apache.pem -out /etc/ssl/private/apache.pem -nodes -days 999
#信息注解
Country Name (2 letter code) [AU]:CN ←输入国家代码
State or Province Name (full name) [Some-State]:JIANGSU ← 输入省名
Locality Name (eg, city) []:SHANGHAI ←输入城市名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:YIQU ← 输入公司名
Organizational Unit Name (eg, section) []:RSA ← 输入组织单位名
Common Name (eg, YOUR name) []:linuxidc.com ← 输入主机名(想要开启 https 的主机名)
Email Address []:dybaid@163.com ←输入电子邮箱地址
3、签署证书
sudo openssl genrsa(-des3)1024 >server.key // 括号里的 命令可以不加 这个是密码验证 加了使用证书就需要输入密码
4、生成证书请求文件
openssl req -new -key server.key > server.csr
三、配置 Apache
1、开启 SSL 模块
a2enmod ssl
2、启用 SSL 站点
a2ensite default-ssl
3、加入监听端口
sudo vim /etc/apache2/ports.conf
#编辑 Apache 端口配置,加入 443 端口(HTTPS 采用的 443 端口传输数据)
Listen 443
4、配置虚拟主机
编辑 default-ssl 文件,加入证书对应的主机头。
sudo vim /etc/apache2/sites-enabled/default-ssl
ServerName linuxidc.com
5、配置 SSL 证书
按如下配置
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLCertificateChainFile /etc/ssl/certs/server-ca.crt
重新启动 Apache
然后 https://linuxidc.com 测试下
浏览器可能会报证书不合法 可以添加例外或者其他仍然访问就好了 自签名证书浏览器一般会提示不合法
配置完之后大家可以用抓包工具看下数据传输是否加密了。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139303.htm