HTTPS协议介绍
HTTPS,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
配置HTTPS就需要证书,关于证书方面不做过多解释,只介绍大概情况 :
证书通过权威的CA机构付费获得的证书才能被互联网承认,我们将其放在服务器上面,配置好后,就可以进行https通信了。
本次不会申请公网IP的SSL证书,因为大都需要收费,不收费的有些申请网站也需要访问外网才可以申请。
1.域名申请
打开阿里云搜素域名关键字,搜素自己想要注册的域名,会出现很多相关可注册域名,自己找一个便宜的,几块钱进行购买即可。
根据提示进行实名认证等一系列工作,认证完成即可出现该域名信息。
配置域名DNS解析:搜素云解析DNS,点击解析设置
配置完成后可点击生效检测
测试域名访问公网地址
2.SSL证书申请
可以在阿里云申请为期一年的免费证书
填写申请信息
申请通过之后可以点击下载选择Nginx
3.配置Nginx
1.进入到nginx目录,查看有没有http_ssl_module模块
./nginx -V
我这里是之前安装过
2.如果没有ssl模块看下面
#prefix后面的路径是你安装nginx的路径
./configure --prefix=/usr/local/nginx --with-http_ssl_module
3.configure执行完成后,输入make,注意:千万不要make install,这样会覆盖原有的配置
4.make完成后,停止nginx服务,进入objs目录,将nginx启动程序,拷贝到安装目录下,替换原有的启动程序
5.启动nginx,输入./nginx -V,查看是否安装成功
6.新建一个目录cert,把申请下来的证书上传上去
7.打开配置文件nginx.conf,加入以下配置
server {
listen 80;
#对应域名填写
server_name iot.pandi.fun;
rewrite ^/(.*)$ https://iot.pandi.fun:443/$1 permanent;
}
# HTTPS server
server {
listen 443 ssl;
server_name iot.pandi.fun;
#这里是ssl pem文件存放的绝对路径
ssl_certificate /usr/local/nginx/cert/9385778_iot.pandi.fun.pem;
#这里是ssl key文件存放的绝对路径
ssl_certificate_key /usr/local/nginx/cert/9385778_iot.pandi.fun.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
#如果是静态文件,直接指向目录,如果是动态应用,用proxy_pass转发一下
location / {
root html;
index index.html index.htm;
}
}
8.重启启动nginx
./nginx -s reload
至此可以用域名HTTPS进行项目访问了
此时有人会出现下列情况,这种情况是因为域名没有进行ICP备案导致,在我们域名进行实名认证后还需要进行相关备案后才可以正常访问。
备案点击: