【2020 最新】菜鸟新手从零 Nginx 配置域名、域名解析、SSL 证书、HTTPS【Nginx、SSL、HTTPS、Apache、Tomcat、IIS】

若是你还不会在你的服务器上安装 LNMP 环境及 Laravel 又找不到方法时,我对此流程作了很是详细的教程,点它学习👉【2020 年最新】新手从零配置 服务器的 LNMP 及 Laravel 环境 超纯净无报错 (Linux、Nginx、MySQL、PHP、Laravel)php

材料准备:html

  • 服务器(我用的是 aliyun Ecs 用哪一个平台的均可以)
  • 服务器是 Linux 系统(我用的 Ubuntu 18.04
  • 已经申请域名(不备案的话好像不能用你也能够试试,备案挺简单的直接去你购买的平台他们都有步骤主要是审核时间长 20 天左右)
  • 命令行(Windows、Mac 自带的便可)
  • SSL 证书(没有的话也不担忧,下面会教你如何申请一个免费的)
  • FileZilla FTP 工具(没有的话下面会教下载)

老规矩,起锅烧油nginx

看完本章你能够学会:为何要配置 Https、如何配置网站域名、如何在你购买的云平台配置域名解析、申请 SSL 证书、实现 Https 访问web

为何要配置 https ?

防流量劫持:HTTPS 会创建起一个防劫持的通信加密隧道,解决中间人流量劫持的问题,不只能够杜绝网页中显示的小广告,更能够保护用户隐私安全。

提高搜索排名:百度、谷歌官方都已作出声明会优先收录采用 HTTPS 的网站,采用 HTTPS 能够提高被搜索排名,提升站点可信度、品牌形象

杜绝钓鱼网站:HTTPS 地址栏绿色图标能够帮助用户识别出钓鱼网站,保障用户和企业的利益不受损害,加强用户信任。
复制代码

正文 👇

1. 在 Tencent Cloud 申请免费的 SSL 证书

进入 Tencent 官方网站的控制台安全

右上角登陆 => 登陆后点击右上角控制台 => 进入控制台页面bash

云产品中找到 SSL 证书服务器

二话不说,点它!!!session

三话不说,申请它!!!php7

四话不说,肯定它!!!socket

信息会填吧,不会填请手动删除你的服务器➕公司辞职

接下来傻瓜无脑下一步弄完后等待申请下来就行了

申请好后 👇

下载到电脑上,切上葱花,留着备用

2. 配置 aliyun 端口打开 22 端口支持 FileZilla 链接

咱们这里配置端口让 FileZilla 链接主要是用来将证书 copy 到服务器一份,以为配置端口再下载 FileZilla 麻烦的能够去网上搜直接经过命令行将文件拷贝到 Linux 主机的方式

打开安全组配置

能够看到我对已经对 22 端口进行过设置了

没有配置的话:右上角 => 添加安全组规则

这里也有一个教链接 FileZilla 的教程也能够看看

3. 使用 FileZilla 链接服务器

点此官网走起,直接找到 Quick download links 的两个大按钮,点击 Download FileZilla Client 就行,下载你对应系统的版本,而后无脑安装并打开

Mac 右上角文件 => 站点管理 => 新建站点 => 填入 ip、端口 2二、用户名、密码 => 链接

直到链接完成

4. 将 SSL 证书 拷贝到服务器

你从 Tencent Cloud 下载的 SSL 证书包中会包含以下文件:
Apache、IIS、Nginx、Tomcat、www.xxx.xxx.csr
这里由于咱们是 Nginx 环境,因此固然是用 Nginx 咯
复制代码

咱们安装的 Nginx 通常都是在服务器的 /etc/nginx/ 目录中特别是根据本教程最顶部的我另一篇博客描述 LNMP 的安装作的同窗,若是你的不是,请找到你的 Nginx 安装目录

接下来咱们要将下载来的 SSL 证书Nginx 文件夹下的两个文件 1_www.xxx.xxx_bundle.crt 2_www.xxx.xxx.key 都经过 FileZilla 拷贝到服务器的 /etc/nginx 目录下,下面是步骤,先打开 FileZilla 并链接上你的服务器 👇

至此,咱们就经过上图的步骤将 SSL 证书 放到服务器的指定位置了

5. 配置 SSL 证书使其正常使用

在 FileZilla 中进入此目录 👉 /etc/nginx/sites-available 会看到有一个文件叫 default 咱们将要编辑它(仍是再声明一下,若是你在这个目录找不到 default 文件,那么若是你不是按照该教程顶部推荐的个人另外一篇安装 LNMP 的教程安装的配置的话那你就要找你 Nginx 的对应目录对应的配置文件了)

若是你是 Apache、IIS、Tomcat 之类的点此连接

咱们打开它并编辑它(下面有完整文件内容展现),增长 👇

#SSL 访问端口号为 443
listen 443;
ssl on;
#填写绑定证书的域名
server_name www.xxx.xxx;
#证书、私钥文件就是你拷贝到 /etc/nginx 目录下的那两个文件
#证书文件名称
ssl_certificate 1_www.xxx.xxx_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_www.xxx.xxx.key;
ssl_session_timeout 5m;
#请按照如下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照如下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

#注意:因为版本问题,配置文件可能存在不一样的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用一行 listen 443 ssl 代替上面的 listen 443 和 ssl on。
#能够经过 nginx -v 查看你的版本
复制代码

ok,保存并关闭,FileZilla 会提示是否回传到服务器,肯定,这样就配置完成了

// 命令行重启 nginx
service nginx restart

// 命令行运行测试来测试配置是否正确
nginx -t
// 输出了
// nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
// nginx: configuration file /etc/nginx/nginx.conf test is successful
// 各类 ok、successful 表示配置成功
复制代码

给你们看一下个人整个 default 文件的配置,固然你能够去我最顶部推荐的另外一片博客中看我配置前是什么样的

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	#SSL 访问端口号为 443
	listen 443;
	ssl on;
	#填写绑定证书的域名
	server_name www.surko.xyz;
	#证书文件名称
	ssl_certificate 1_www.surko.xyz_bundle.crt;
	#私钥文件名称
     	ssl_certificate_key 2_www.surko.xyz.key;
     	ssl_session_timeout 5m;
     	#请按照如下协议配置
     	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     	#请按照如下套件配置,配置加密套件,写法遵循 openssl 标准。
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
     	ssl_prefer_server_ciphers on;
	#location / {
        # #网站主页路径。此路径仅供参考,具体请您按照实际目录操做。
        # root /var/www/Laravel60/public;
        # index index.php index.html index.htm;
     	#}

	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Note: You should disable gzip for SSL traffic.
	# See: https://bugs.debian.org/773332
	#
	# Read up on ssl_ciphers to ensure a secure configuration.
	# See: https://bugs.debian.org/765782
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	#
	# include snippets/snakeoil.conf;

	root /var/www/Laravel60/public;

	# Add index.php to the list if you are using PHP
	index index.php index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		# try_files $uri $uri/ =404;
		try_files $uri $uri/ /index.php?$query_string;
	}

	# pass PHP scripts to FastCGI server
	#
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
	#
	# # With php-fpm (or other unix sockets):
		fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
	# # With php-cgi (or other tcp sockets):
	# fastcgi_pass 127.0.0.1:9000;
	}

	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	location ~ /\.ht {
		deny all;
	}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
复制代码

6. 配置域名解析

为何要配置域名解析,通俗讲就是把你的域名和你的 IP 地址进行绑定,绑定了以后域名就知道该进哪一个 IP 的服务器了

首先,进入你的云控制台(我这里用的是 aliyun)

aliyun 控制台 => 域名 => 域名解析 => 添加配置配置相应内容
复制代码

点击肯定,就配置好了

7. 大功告成

接下来你就能够经过 Https 来访问你的网站了,有问题的同窗请在下方留言评论,有缘看到会回复

是菜鸟?不要紧。想要从零学会如何在你的服务器上配置 LNMP 环境及 Laravel,我对此流程作了很是详细的教程,点它学习👉【2020 年最新】新手从零配置 服务器的 LNMP 及 Laravel 环境 超纯净无报错 (Linux、Nginx、MySQL、PHP、Laravel)

写做不易,很少说了,手指头还在的就点赞吧!

It's not easy to write. If the finger is still on your hand, Please tap the like button on the website.

Thank you!

相关文章
相关标签/搜索