转载

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

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

材料准备:

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

老规矩,起锅烧油

看完本章你可以学会:为什么要配置 Https、如何配置网站域名、申请 SSL 证书 、实现 Https 访问

为什么要配置 https ?

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

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

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

正文 :point_down:

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

进入 Tencent 官方网站的控制台

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

云产品中找到 SSL 证书

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

二话不说,点它!!!

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

三话不说,申请它!!!

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

四话不说,确定它!!!

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

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

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

申请好后 :point_down:

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

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

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

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

打开安全组配置

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...
【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

可以看到我对已经对 22 端口进行过设置了

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

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

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

这里也有一个教连接 FileZilla 的教程也可以看看

2. 使用 FileZilla 连接服务器

点此官网走起,直接找到 Quick download links 的两个大按钮,点击 Download FileZilla Client 就行,然后无脑安装并打开

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

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

直到连接完成

3. 将 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 并连接上你的服务器 :point_down:

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

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

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

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

如果你是 Apache、IIS、Tomcat 之类的点此链接

【2020 最新】菜鸟新手从零学会 Nginx 配置域名、SSL 证书(Https 访问)【Nginx、SSL、HTTPS、Apache、To...

我们打开它并编辑它,增加 :point_down:

#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;
#	}
#}
复制代码

5. 大功告成

接下来你就可以通过 Https 来访问你的网站了,有问题的同学请在下方留言评论,有缘看到会回复

是菜鸟?没关系。想要从零学会如何在你的服务器上配置 LNMP 环境及 Laravel,我对此流程做了非常详细的教程,点它学习:point_right: 【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!

原文  https://juejin.im/post/5e784fb26fb9a07cd52c0410
正文到此结束
Loading...