0%

实践-nginx配置https

最近在搭建测试环境,很久没接触nginx了。

阅读注意事项

  1. 需要一个域名,并且在国内备案过。
  2. 需要一台服务器(阿里ESC)这种,分配的公网ip。
  3. 申请或者购买一张证书。和域名做关联,域名解析到服务器的公网ip。注意开放服务区的80、443端口。
    1. 证书有两个文件
      1. domian.name.key domain.name.pem
    2. 吧证书上传到目标nginx服务器中。
    3. 检查服务器防火墙
1
2
3
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

开始步骤

安装nginx

服务器使用的Centos服务器 使用yum安装nginx。

1
2
3
4
5
6
7
8
9
10
11
12
13
-> yum install -y nginx
#检查nginx安装位置信息
-> whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz
# 实际上是安装到/etc/nginx里面了
# 设置开机自动启动nginx
-> sudo systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
# 切换到nginx安装目录
-> cd /etc/nginx
# 启动nginx
-> nginx
# 测试nginx 在浏览器里面请求http://ip 就可以了看到nginx页面就算安装成功

配置证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 创建证书文件并且将证书复制近文件中
-> cd /etc/nginx
-> mkdir cert
-> mv domian.name.key /etc/nginx/cert/
-> mv domian.name.pem /etc/nginx/cert/
# 配置nginx.conf文件使证书生效,并将80端口转发到443端口上。
-> vim nginx.conf
#以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
server {
listen 443; #配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。
server_name www.certificatestests.com; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.aliyun.com。
root html;
index index.html index.htm;
ssl_certificate cert/domain name.pem; #将domain name.pem替换成您证书的文件名称。
ssl_certificate_key cert/domain name.key; #将domain name.key替换成您证书的密钥文件名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm;
}
}

server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
listen 80;
listen [::]:80;
server_name www.certificatestests.com;
return 301 https://$host$request_uri;
}
# 保存并推出、检查配置nginx配置文件是否合法、并重启nginx
-> nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
-> nginx -s reload

测试域名证书是否生效

1
2
https://domian
http://domian 检查是否安全链接即可。一般浏览器上面会出现一个安全的标志

参考文献

阿里云帮助文档-在Nginx上配置证书