1. http协议和https协议对比
http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息。默认端口为80。
https协议:HTTPS使用公钥和私钥两种密钥,实现加密和解密的过程,是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。为浏览器和服务器之间的通信加密,确保数据传输的安全。默认端口为443。
HTTP页面可以通过IP直接访问,而HTTPS页面访问必须绑定域名,通过域名访问。
2. 准备服务器和域名
以腾讯云为例,已经购买了应用服务器和域名。并且域名解析已完成。(说明,域名如要使用还需要备案。)
云服务器购买链接:https://buy.cloud.tencent.com/
域名购买/注册链接:https://console.cloud.tencent.com/domain/all-domain/all
3. 购买SSL证书
可以购买证书,另外腾讯云有免费的SSL证书可以申请。
SSL证书购买链接:https://console.cloud.tencent.com/ssl
提交申请,审核完成即可。
4. 修改nginx配置文件
nginx自行安装,可以参考yum安装方式:Nginx基本常识及安装方法
vim /etc/nginx/nginx.conf
server {
listen 443 ssl; # 监听443端口
server_name jiangstudy.online www.jiangstudy.online; # 自己的域名
ssl_certificate /etc/cert/jiangstudy.online_bundle.crt; # 证书路径,需上传到对应的路径下
ssl_certificate_key /etc/cert/jiangstudy.online.key; # 证书路径,需上传到对应的路径下
location / {
proxy_pass http://localhost:8090; # 开启反向代理到后端运行程序,个人博客
}
}
5. 测试
https://jiangstudy.online/
6. 补充
有些用户可能并不注意输入的是https,如果输入http,那么就会被转发到80端口,导致SSL配置没有生效,可以在配置中让http请求转发到https请求。
return 301 https://$host$request_uri;
或
rewrite ^(.*)$ https://$host$1 permanent;
选择一种方式就行。