Linux下nginx配置证书实现https访问

Linux下nginx配置证书实现https访问

一、下载并安装nginx

1)执行下列命令安装Nginx。

	yum install -y nginx

参考自https://www.cnblogs.com/smilevv/p/14167182.html

我这里遇到了问题:
Linux下nginx配置证书实现https访问_第1张图片
提示并没有可用的nginx包。

可以单独增加一个nginx的包。我这里是直接重安装了Linuxepelyum源。

2)安装了 Linux 的 epel 的 yum 源。指令如下:

	yum install epel-release

以下题外参考自https://www.cnblogs.com/weiguang/p/12040067.html

题外:
1、epel是什么
如果既想获得 RHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

2、如何获取 EPEL 的软件包
EPEL 包含一个叫做 ‘epel-release’ 的包,其中包含了用于软件包签名的 gpg 密钥和软件源的信息。安装这个包到您的企业版 Linux 上之后,您将可以通过使用类似于 yum 的工具来安装软件包和它们的依赖。在默认情况下,EPEL 仓库的稳定版本是开启的。除了 epel-release 源,还有一个叫做 ‘epel-testing’ 仓库 包含尚未被视作稳定的软件,请自行斟酌开启的风险。 
CentOS 用户可以直接通过 yum install epel-release 安装并启用 EPEL 源。

3、使用心得:
1、不用去换原来yum源,安装后会产生新repo
2、epel会有很多源地址,如果一个下不到,会去另外一个下
3、更新时如果下载的包不全,就不会进行安装。这样的话,依赖关系可以保重

4、安装yum install yum-priorities
Yum Priorities 插件可以用来强制保护源。它通过给各个源设定不同的优先级,使得系统管理员可以将某些源(比如 Linux 发行版的官方源)设定为最高优先级,从而保证系统的稳定性(同时也可能无法更新到其它源上提供的软件最新版本)。

期间若安装不成功,可以先将原先运行的yum强行关掉,在重新安装即可。

安装成功后,如图:
Linux下nginx配置证书实现https访问_第2张图片
筛选查看是否有nginx:
Linux下nginx配置证书实现https访问_第3张图片
可以看到图中,有一个nginx.x86_64

3)执行下列命令安装Nginx。

	yum install nginx

二、启动nginx并设置开机自启

1)启动nginx(配置环境变量后在非sbin目录使用nginx相关命令时不加./)
   我这里在根目录启动,命令如下:
   启动:service nginx start
   重启:service nginx restart
   停止:service nginx stop
   
(2)设置开机自动运行:
	service nginx enable

试了一些指令(随便看看):
Linux下nginx配置证书实现https访问_第4张图片

三、修改nginx.conf文件、配置证书

题外:
	Nginx配置信息
	网站文件存放默认目录
	/usr/share/nginx/html
	
	网站默认站点配置
	/etc/nginx/conf.d/default.conf
	
	自定义Nginx站点配置文件存放目录
	/etc/nginx/conf.d/
	
	Nginx全局配置
	/etc/nginx/nginx.conf

启动成功nginx,但是现在并不能访问nginx。因为我这里服务器中80端口和443端口已经被其他程序占用,我需要修改nginx.conf配置文件中的端口。

1)首先找到nginx.conf文件在哪里
    # 从 / 根目录下查找文件名为 nginx.conf 的文件
    find / -name nginx.conf
    # 从 /etc 目录下查找文件名为 nginx.conf 的文件
    find /etc -name nginx.conf

在这里插入图片描述

2)打开nginx.conf文件进入编辑页面
    vim /etc/nginx/nginx.conf

如果有Xftp或者WinSCP等工具,也可以链接服务器直接点开文件查看。
Linux下nginx配置证书实现https访问_第5张图片
可以看到里面的最后一行指向的地址。:wq退出编辑。
查看这个地址下的所有.conf文件。
Linux下nginx配置证书实现https访问_第6张图片
有三个文件,打开之后可以看到

  • default.conf文件是配置http的。
  • ssl.conf文件是配置https的。

打开文件修改里面的端口:

3)打开ssl.conf文件进入编辑页面
    vim /etc/nginx/conf.d/ssl.conf

Linux下nginx配置证书实现https访问_第7张图片

我这里改为了10443端口,并且把已经申请好的证书放在了/etc/nginx的目录下。
ssl_certificatessl_certificate_key里写上证书的路径。
:wq退出编辑。
同样的:default.conf文件中80端口修改为10081,也可以改成别的不被占用的端口(一开始我改成了10080端口,发现访问http://192.168.90.90:10080访问不通,是被认为10080端口不安全,被拦截了。改成10081端口就正常访问了。有兴趣的可以试一下)。

4)重新启动nginx
	service nginx restart
	查看端口是否修改成功
    netstat -ntlp |grep 10

Linux下nginx配置证书实现https访问_第8张图片

四、重启nginx、访问页面

Linux下nginx配置证书实现https访问_第9张图片
地址栏输入https://192.168.90.90:10443,访问到nginx
Linux下nginx配置证书实现https访问_第10张图片

五、https转发到http的请求

1)打开ssl.conf文件进入编辑页面
    vim /etc/nginx/conf.d/ssl.conf

在location下面添加一行proxy_pass http://192.168.90.90:80;,如下图:

#
# HTTPS server configuration
#

server {
    listen       10443 ssl http2 default_server;
    listen       [::]:10443 ssl;
    server_name  _;
    root         /usr/share/nginx/html;

    ssl_certificate /etc/nginx/cert.pem;
    ssl_certificate_key /etc/nginx/cert.key;
    #ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
		proxy_pass http://192.168.90.90:80;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

此时访问https://192.168.90.90:10443/,将会自动转发到http://192.168.90.90:80

在这里插入图片描述
回车后跳转:

在这里插入图片描述

记录过程。欢迎指正!

参考博文有:
https://blog.csdn.net/Alexshi5/article/details/87897737
https://www.cnblogs.com/smilevv/p/14167182.html
https://www.cnblogs.com/weiguang/p/12040067.html

你可能感兴趣的:(Linux,Nginx,#证书配置,linux,nginx,java)