{"id":7969,"date":"2023-12-29T18:51:51","date_gmt":"2023-12-29T09:51:51","guid":{"rendered":"\/blog\/?p=7969"},"modified":"2023-12-29T19:17:13","modified_gmt":"2023-12-29T10:17:13","slug":"apache2-webdav-%ec%84%a4%ec%a0%95","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=7969","title":{"rendered":"Apache2 WebDAV \uc124\uc815"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">1. \uc544\ud30c\uce58 \ubaa8\ub4c8 \ud65c\uc131\ud654\na2enmod dav\na2enmod dav_fs\na2enmod autoindex\na2enmod auth_digest\na2enmod auth_basic\na2enmod alias\na2enmod access_compat\na2enmod ssl\na2enmod autoindex\nsystemctl restart apache2\n\n2. webdav \uc778\uc99d \uc0ac\uc6a9\uc790 \ucd94\uac00\nhtpasswd -c \/etc\/apache2\/webdav.passwd davuser\nNew password: password1\nhtpasswd \/etc\/apache2\/webdav.passwd davadmin\nNew password: password2\nchmod 640 \/etc\/apache2\/webdav.passwd\nchown root:www-data \/etc\/apache2\/webdav.passwd\n\n3. SSL \uc778\uc99d\uc11c \uc0dd\uc131 (\ud55c \uc904\uc529 \uc2e4\ud589\ud55c\ub2e4)\nrm -rf \/etc\/apache2\/ssl\/*\nntpdate -v kr.pool.ntp.org\nhead -c 32 &lt; \/dev\/random > ~\/.rnd\nopenssl genrsa -des3 -out ssl-cert-apache2.key 2048\nopenssl req -new -days 18250 -key ssl-cert-apache2.key -out ssl-cert-apache2.csr -subj \"\/C=KR\/ST=Seoul\/L=Guro-gu\/O=My Office\/OU=Web Server\/CN=apache2\"\ncp -fv ssl-cert-apache2.key ssl-cert-apache2.key.orig\nopenssl rsa -in ssl-cert-apache2.key.orig -out ssl-cert-apache2.key\nopenssl x509 -req -days 18250 -in ssl-cert-apache2.csr -signkey ssl-cert-apache2.key -out ssl-cert-apache2.crt\n\nmkdir -p \/etc\/apache2\/ssl\/private\nmkdir -p \/etc\/apache2\/ssl\/certs\nmv -fv ssl-cert-apache2.key* \/etc\/apache2\/ssl\/private\/\nmv -fv ssl-cert-apache2.crt \/etc\/apache2\/ssl\/certs\/\nmv -fv ssl-cert-apache2.csr \/etc\/apache2\/ssl\/certs\/\nchown -R www-data:www-data \/etc\/apache2\/ssl\n\n4. vi \/etc\/apache2\/sites-available\/webdav.conf\nDavLockDB \"\/etc\/apache2\/DavLock\"\nAlias \"\/dav\" \"\/mnt\/storage\"\n\nSSLEngine on\nSSLCertificateFile  \"\/etc\/apache2\/ssl\/certs\/ssl-cert-apache2.crt\"\nSSLCertificateKeyFile \"\/etc\/apache2\/ssl\/private\/ssl-cert-apache2.key\"\n\n&lt;Location \"\/dav\">\n  Dav On\n  SSLRequireSSL\n  AuthType Basic\n  AuthName \"webdav\"\n  AuthUserFile \"\/etc\/apache2\/webdav.passwd\"\n  AuthDigestProvider file\n  &lt;Limit GET OPTIONS PROPFIND>\n    Require valid-user\n  &lt;\/Limit>\n  &lt;LimitExcept GET OPTIONS PROPFIND>\n    Require user davadmin\n  &lt;\/LimitExcept>\n&lt;\/Location>\n\n&lt;Directory \"\/mnt\/storage\">\n  Dav On\n  Order Allow,Deny\n  Allow from all\n  AllowOverride None\n  IndexOptions FancyIndexing\n  IndexOptions FoldersFirst\n  IndexOptions NameWidth=*\n  IndexOrderDefault Ascending Name\n  Options Indexes\n  AddDefaultCharset utf-8\n  IndexOptions Charset=utf-8\n&lt;\/Directory>\n\n5. \uc815\ub9ac \uc791\uc5c5 \ud6c4 webdav \uc0ac\uc774\ud2b8 \ud65c\uc131\ud654\ntouch \/etc\/apache2\/DavLock\nchown www-data:www-data \/etc\/apache2\/DavLock\na2ensite webdav\nsystemctl restart apache2\n\n6. \ud14c\uc2a4\ud2b8\nhttps:\/\/10.10.10.145\/dav<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[11,14],"tags":[],"class_list":["post-7969","post","type-post","status-publish","format-standard","hentry","category-computing_network","category-computing_tipsandtricks"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7969"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7969\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}