广告位联系
返回顶部
分享到

Nginx搭建Webdav服务的方法

nginx 来源:互联网 作者:佚名 发布时间:2024-12-28 22:22:41 人浏览
摘要

一、 自签名根证书 1. 生成根证书密钥 1 openssl genrsa -out ./root.key 2048 2. 生成根证书 1 2 3 4 5 6 7 8 9 10 openssl req -x509 -new -key ./root.key -out ./root.pem -days 365 交互信息 Country Name (2 letter code) []:CN State or

一、 自签名根证书

1. 生成根证书密钥

1

openssl genrsa -out ./root.key 2048

2. 生成根证书

1

2

3

4

5

6

7

8

9

10

openssl req -x509 -new -key ./root.key -out ./root.pem -days 365

 

交互信息

Country Name (2 letter code) []:CN

State or Province Name (full name) []:HeNan

Locality Name (eg, city) []:HZG

Organization Name (eg, company) []:www.hzg.com

Organizational Unit Name (eg, section) []:HZG

Common Name (eg, fully qualified host name) []:HZG

Email Address []:123456789@qq.com

二、生成应用证书

1. 生成应用证书密钥

1

openssl genrsa -out webdav.key 2048

2. 生成应用证书请求

1

openssl req -new -key webdav.key -out webdav.csr

3. 创建证书附加用途文件

基于域名的证书
这里解决的问题是浏览器访问网页验证证书域名的问题,保存为 webdav.ext 文件,生成证书的时候使用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

基于域名的证书

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

extendedKeyUsage = serverAuth, clientAuth

subjectAltName=@SubjectAlternativeName

 

[ SubjectAlternativeName ]

DNS.1=hzgwebdav.com

DNS.2=*.hzgwebdav.com

 

基于IP的证书

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

extendedKeyUsage = serverAuth, clientAuth

subjectAltName=@SubjectAlternativeName

 

[ SubjectAlternativeName ]

IP.1=192.168.0.1

IP.2=192.168.0.2

4. 签发证书

1

openssl x509 -req -in webdav.csr -CA root.pem -CAkey root.key -CAcreateserial -out webdav.crt -days 365 -sha256 -extfile webdav.ext

三、Nginx 部署 Webdav 服务

1. 生成 Webdav 用户密码文件

1

echo hzg:$(openssl passwd -crypt 12345678)>/path/certs/webdav/webdavpasswd

2. Nginx WebDav 配置

注意 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

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

nginx-dav-ext-module

ngx_http_headers_module

 

dav_ext_lock_zone zone=davlock:10m;

# Http 配置

server {

    listen 8080;

    server_name hzgwebdav.com *.hzgwebdav.com;

 

    location / {

        root /path/webdav;

        autoindex_localtime on;

 

        set $dest $http_destination;

        if (-d $request_filename) {                   # 对目录请求、对URI自动添加"/"

            rewrite ^(.*[^/])$ $1/;

            set $dest $dest/;

        }

 

        if ($request_method ~ (MOVE|COPY)) { # 对MOVE|COPY方法强制添加Destination请求头

           more_set_input_headers 'Destination: $dest';

        }

 

        if ($request_method ~ MKCOL) {

            rewrite ^(.*[^/])$ $1/ break;

        }

 

        client_body_temp_path /tmp;

 

        dav_methods PUT DELETE MKCOL COPY MOVE;       # DAV支持的请求方法

        dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK; # DAV扩展支持的请求方法

        dav_ext_lock zone=davlock;                    # DAV扩展锁绑定的内存区域

        create_full_put_path  on;                     # 启用创建目录支持

        dav_access user:rw group:r all:r;             # 设置创建的文件及目录的访问权限

 

        auth_basic "Authorized Users WebDAV";

        auth_basic_user_file /path/certs/webdav/webdavpasswd;

    }

}

 

# Https 配置

server {

    listen 443 ssl;

    server_name hzgwebdav.com *.hzgwebdav.com;

 

    autoindex on;

 

    ssl_certificate "/path/certs/webdav/webdav.crt";

    ssl_certificate_key "/path/certs/webdav/webdav.key";

 

    ssl_protocols           SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 ;

    ssl_prefer_server_ciphers on;

    ssl_ciphers               ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    ssl_session_cache         shared:SSL:10m;

    ssl_session_tickets       off;

    ssl_stapling              off;

 

    location / {

        root /path/webdav;

        autoindex_localtime on;

 

        set $dest $http_destination;

        if (-d $request_filename) {                   # 对目录请求、对URI自动添加"/"

            rewrite ^(.*[^/])$ $1/;

            set $dest $dest/;

        }

 

        if ($request_method ~ (MOVE|COPY)) { # 对MOVE|COPY方法强制添加Destination请求头

           more_set_input_headers 'Destination: $dest';

        }

 

        if ($request_method ~ MKCOL) {

            rewrite ^(.*[^/])$ $1/ break;

        }

 

        client_body_temp_path /tmp;

 

        dav_methods PUT DELETE MKCOL COPY MOVE;       # DAV支持的请求方法

        dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK; # DAV扩展支持的请求方法

        dav_ext_lock zone=davlock;                    # DAV扩展锁绑定的内存区域

        create_full_put_path  on;                     # 启用创建目录支持

        dav_access user:rw group:r all:r;             # 设置创建的文件及目录的访问权限

 

        auth_basic "Authorized Users WebDAV";

        auth_basic_user_file /path/certs/webdav/webdavpasswd;

    }

}


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Nginx FastCGI缓存的实现
    随着 Web 应用的发展和流量的不断增长,如何提高应用性能、减少服务器负载成为开发者和系统管理员关注的重点。FastCGI 缓存作为一种常用
  • Nginx实现TCP和UDP代理的方法
    Nginx是一个高性能的HTTP和反向代理服务器,同时也支持TCP/UDP代理。在1.9.13版本后,Nginx已经支持端口转发,包括TCP和UDP协议。Nginx的TCP/UDP代
  • Nginx搭建Webdav服务的方法
    一、 自签名根证书 1. 生成根证书密钥 1 openssl genrsa -out ./root.key 2048 2. 生成根证书 1 2 3 4 5 6 7 8 9 10 openssl req -x509 -new -key ./root.key -out ./root.p
  • 当Nginx所在服务器的磁盘空间满时的影响以及如何
    大家好,我是G探险者! 最近遇到一个问题是,nginx所在服务器磁盘满了,导致前端页面上的一个文件上传功能不好使了,搞得我排查半天,
  • 使用nginx正向代理实现访问外网

    使用nginx正向代理实现访问外网
    需求1:某几个ip的代理 1 2 3 4 5 6 7 8 9 server { listen 9000; # 监听端口 server_name localhost; set $url proxy_server_doman_or_ip; # 设置代理的域名或IP变量,这
  • Nginx缓存系统 proxy_cache工作原理介绍
    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示
  • nginx怎么根据报文里字段转发至不同地址
    nginx接收到post请求.请求报文里是一个json字符串,字符串里有个字段id。 根据id不同,转发到不同地址。 如果id=aaa,转发到www.aaa.com.test 如果
  • nginx设置X-Frame-Options的字段选择

    nginx设置X-Frame-Options的字段选择
    X-Frame-Options选项 X-Frame-Options 有三个值: DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许 SAMEORIGIN:表示该页
  • nginx配置https://localhost/index报404
    当你的Nginx配置导致页面刷新时报404错误时,通常是由于以下几个原因造成的: 静态文件路径配置错误:Nginx没有正确地指向静态文件的目录
  • nginx设置X-Frame-Options的字段选择介绍

    nginx设置X-Frame-Options的字段选择介绍
    X-Frame-Options选项 X-Frame-Options 有三个值: DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许 SAMEORIGIN:表示该页
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计