导言
通过使用nginx来部署https是一种方便的方式。本文是一个自己部署https的笔记
安装Nginx
在Centos的默认镜像中不包含nginx,我们需要添加一个EPEL (extra packages for Enterprise Linux) repository
1 | sudo yum install epel-release |
然后运行yum 安装1
sudo yum install nginx
安装好之后可以通过service命令来控制nginx的启动
1 | sudo systemctl start nginx # 启动 |
最好启动开机自启动
1 | sudo systemctl enable nginx |
启动之后默认挂载在80端口,https是挂载在443端口,需要检查一下防火墙是否对这些端口进行了封锁。
如果系统使用的是firewalld
请使用下列的命令
1 | sudo firewall-cmd --add-service=http |
如果是用的iptables
那就用下列的命令1
2sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
然后访问对应的ip就可以看到nginx的默认页面了
创建证书
证书的申请我不讲了,有很多方法。根据实际情况看下资料就好了。
https 的证书包含一个private
,public
两个部分。我们分别建立两个文件夹来存放他们
/etc/ssl/certs 存放公钥的
*.crt
,*.pem
两种文件
/etc/ssl/private 存放公钥的*.key
文件
1 | sudo mkdir /etc/ssl/private |
配置nginx的Https
nginx在默认情况下是没有启动https的,所以我们需要新建一个配置文件用来描述https
我们需要再/etc/nginx/conf.d/
下创建一个.conf
结尾的文件,nginx在启动的时候会默认加载conf.d
下以.conf
结尾的配置文件。
我们创建一个ssl的配置文件
1 | sudo vi /etc/nginx/conf.d/ssl.conf |