Nginx服务的ssl认证和htpasswd认证

简介:

默认Nginx是没有ssl模块的,需要在编译安装的时候添加上ssl模块!

首先是需要安装Nginx服务,这里我们不做详细介绍,具体安装可以参考我的“Nginx介绍及安装配置”。

使用Openssl生成证书

1、生成RSA密钥的方法

[root@web01 conf]# openssl genrsa -des3 -out kell.key 1024

Generating RSA private key, 1024 bit long modulus

.++++++

..++++++

e is 65537 (0x10001)

Enter pass phrase for kell.key:

Verifying - Enter pass phrase for kell.key:

2、生成一个证书请求

[root@web01 conf]# openssl req -new -keykell.key -out kell.csr

这里会要求输入省份,国家等一些信息,在email要输入域名后缀一样,密码是上一步输入的密码

3、拷贝一个不需要输入密码的密钥文件

[root@web01 conf]# openssl rsa -in kell.key -out kell_nopass.key

Enter pass phrase for kell.key:

writing RSA key

密码输入上一次输入的密码

4、自己签发证书

 [root@web01 conf]#openssl x509 -req -days 365 -in kell.csr -signkey kell.key -out kell.crt

配置Nginx配置文件

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        #listen       80;

        listen       443;

        ssl on;

        ssl_certificate /application/nginx/conf/kell.crt;

        ssl_certificate_key /application/nginx/conf/kell_nopass.key;

        server_name  www.etiantian.org;

        location / {

            root   html/www;

            rewrite ^/(.*) https://$host/$1 permanent;

            index  index.html index.htm;

            #rewrite ^/(.*) https://$host/$1 permanent;

        }

    }

通过浏览器https就可以访问了,如果需要rewrite,需要配置rewrite

通过htpasswd设置Nginx认证访问

由于htpasswd是http服务带的命令,所以我们可以安装http服务来得到这个命令,也可以只安装httpd-tools来安装这个命令,这样就不用安装整个http服务

安装htpasswd命令工具

[root@web01 conf]# yum install httpd-tools

[root@web01 conf]# which htpasswd

/usr/bin/htpasswd

创建账号&密码

[root@web01 conf]# htpasswd -bc /application/nginx/conf/htpasswd wangzhan 123456

Adding password for user wangzhan

[root@web01 conf]# chmod 400 /application/nginx/conf/htpasswd

[root@web01 conf]# chown nginx /application/nginx/conf/htpasswd

[root@web01 conf]# cat /application/nginx/conf/htpasswd

wangzhan:b2sfluv5673CE

在配置文件中添加下面两行

    auth_basic        "wangzhan 123456";

    auth_basic_user_file /application/nginx/conf/htpasswd;

重启服务,使用网站访问,会发现出现输入认证口令对话框



本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1832207,如需转载请自行联系原作者

相关文章
|
存储 运维 监控
阿里云的文件存储NAS使用心得
阿里云的文件存储NAS使用心得
549 0
|
IDE 关系型数据库 开发工具
公认超级好用的Mac软件汇总(一)
公认超级好用的Mac软件汇总
437 0
|
小程序 开发者
微信小程序项目实例——2048小游戏
微信小程序项目实例——2048小游戏
|
JSON 自然语言处理 数据挖掘
4.基于Label studio的训练数据标注指南:情感分析任务观点词抽取、属性抽取
4.基于Label studio的训练数据标注指南:情感分析任务观点词抽取、属性抽取
|
云安全 运维 安全
阿里云《金融企业上云登陆区(Landing Zone)白皮书》正式发布
阿里云首次发布《金融企业上云登陆区白皮书》,白皮书由实践经验丰富的行业解决方案架构师、阿里云产品专家、交付服务专家等共同编写,聚焦在金融企业上云规划和云上IT治理领域,结合阿里云产品服务能力,给出了金融企业上云的思路建议、最佳实践与建设指南,适合于金融企业中的IT主管(如CIO、运维总监)、云架构师以及企业上云相关人员查阅参考。
阿里云《金融企业上云登陆区(Landing Zone)白皮书》正式发布
|
数据采集 数据可视化 安全
企业数字化:iPaaS和aPaaS的差异融合思考
未来aPaaS+iPaaS技术融合将有望成为企业标配,大幅加速企业数字化转型步伐,为企业构建面向未来的下一代敏捷化IT架构。
628 0
企业数字化:iPaaS和aPaaS的差异融合思考
|
前端开发 Java Linux
CentOS软件管理 - 编译安装
CentOS软件管理 - 编译安装
451 0
|
消息中间件 JSON API
Springboot----项目整合微信支付(利用RabbitMQ延迟队列处理用户退款)
Springboot----项目整合微信支付(利用RabbitMQ延迟队列处理用户退款)
714 0
Springboot----项目整合微信支付(利用RabbitMQ延迟队列处理用户退款)
|
前端开发
react实现页面多个模块的切换
react实现页面多个模块的切换
react实现页面多个模块的切换
|
存储 运维 监控
AWS S3 Lens使用简介
本文主要对S3 Lens的基本功能及如何使用进行介绍
646 0