当前位置: 代码网 > it编程>数据库>Oracle > Nginx搭建Webdav服务的方法步骤

Nginx搭建Webdav服务的方法步骤

2024年12月28日 Oracle 我要评论
一、 自签名根证书1. 生成根证书密钥openssl genrsa -out ./root.key 20482. 生成根证书openssl req -x509 -new -key ./root.key

一、 自签名根证书

1. 生成根证书密钥

openssl genrsa -out ./root.key 2048

2. 生成根证书

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. 生成应用证书密钥

openssl genrsa -out webdav.key 2048

2. 生成应用证书请求

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

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

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

基于域名的证书
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. 签发证书

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 用户密码文件

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

2. nginx webdav 配置

注意 nginx 需要安装以下模块

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;
    }
}

到此这篇关于nginx搭建webdav服务的方法步骤的文章就介绍到这了,更多相关nginx搭建webdav服务内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com