最近在搭建测试环境,很久没接触nginx了。
阅读注意事项
- 需要一个域名,并且在国内备案过。
- 需要一台服务器(阿里ESC)这种,分配的公网ip。
- 申请或者购买一张证书。和域名做关联,域名解析到服务器的公网ip。注意开放服务区的80、443端口。
- 证书有两个文件
domian.name.key domain.name.pem
- 吧证书上传到目标nginx服务器中。
- 检查服务器防火墙
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
-> 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
-> sudo systemctl enable nginx Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
-> cd /etc/nginx
-> 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/
-> vim nginx.conf
server { listen 443; server_name www.certificatestests.com; root html; index index.html index.htm; ssl_certificate cert/domain name.pem; ssl_certificate_key cert/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; listen [::]:80; server_name www.certificatestests.com; return 301 https://$host$request_uri; }
-> 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上配置证书
CentOS 7 上安装最新版 Nginx