精华内容
下载资源
问答
  • 安装完Nextcloud之后,下一步就是启用https了。在不使用Docker的时候,一般都是去服务器(如apache)里面启用https功能并添加证书,但是我在 https://hub.docker.com/_/nextcloud 下面的介绍里面并没有发现相关的...
    
     

    安装完Nextcloud之后,下一步就是启用https了。在不使用Docker的时候,一般都是去服务器(如apache)里面启用https功能并添加证书,但是我在 https://hub.docker.com/_/nextcloud 下面的介绍里面并没有发现相关的说明,相反那儿却给出了使用  nginx-proxy 和docker-letsencrypt-nginx-proxy-companion 进行反向代理的方式。这种方式使用nginx-proxy建立一个代理服务器,自动查询docker内部的容器并转发请求,而且配合letsencrypt自动申请和续期证书。

    这种方式看起来挺牛逼的,可以对多个容器进行代理,省去了一个一个配置https的麻烦,这么好的东西,开干啊!

    当然事情不可能那么顺利,前面有坑在等着呢。

    https://github.com/nextcloud/docker/tree/master/.examples 上面说要用docker-compose来安装,那么就安装吧。安装方法有很多种,有到github上面下载的,有用python安装pip后在安装的。其实,用ubuntu的话,直接通过下面一条命令就可以了。

    sudo apt install docker-compose

    顺便查了下docker-compose,其实是用来管理多个镜像的,把原来需要一个个需要手动启动配置的容器操作简化了。然后看了下 jwilder/nginx-proxy 和jrcs/docker-letsencrypt-nginx-proxy-companion。前面的一大堆说明都还好,操作起来应该没问题,但是后面的一看就有问题了,

    Requirements:

    • Your host must be publicly reachable on both port 80 and 443.

    需要公网80和443端口,这就坑爹了,看来免费的ssl证书没法用了。(有公网IP的可以按照文档继续试试,反正到这步我就停了)

    之前在阿里云买了个域名,可以申请一个免费证书,但是只是二级域名的,那就使用这个证书看看能不能在nginx-proxy中使用。

    如果可以申请多个二级证书或者*.domain.com类型的证书,可以实现https://a.domain.com,https://a.domain.com这样的访问,域名和容器一一对应;如果只有一个二级证书,那么只能实现https://a.domain.com,但是可以在后面添加路径,然后借助nginx-proxy代理到不同的容器上面,即https://a.domain.com/nextcloud,https://a.domain.com/wordpress。

    nginx-proxy

    既然无法使用let's encrypt申请证书,那么就只能直接使用nginx-proxy来进行代理了。拉取镜像启动容器,直接用portainer或者命令行就行了,没必要用docker-compose了。

    jwilder/nginx-proxy
    docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

    这样仅仅是启动了http代理,并没有启动https,启动https需要另外进行以下操作,

    • 映射443端口
    • 添加证书路径到/etc/nginx/certs,这个可以直接映射主机证书路径
    • 证书按照foo.bar.com.crt 和foo.bar.com.key的格式命名,阿里云下载的证书需要手动把pem后缀改为crt后缀。

    接下来进行代理配置,修改nginx的配置文件,映射自定义的proxy.conf到/etc/nginx/proxy.conf,配置里面主要是添加https支持,以及主机映射。

    # HTTP 1.1 support
    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_set_header Host $http_host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $proxy_connection;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
    proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
    proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
    
    # Mitigate httpoxy attack (see README for details)
    proxy_set_header Proxy "";
    
    server {
    	server_name foo.bar.com;
    	listen 443 ssl http2 ;
    	access_log /var/log/nginx/access.log vhost;
    	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    	ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS';
    	ssl_prefer_server_ciphers on;
    	ssl_session_timeout 5m;
    	ssl_session_cache shared:SSL:50m;
    	ssl_session_tickets off;
    	ssl_certificate /etc/nginx/certs/foo.bar.com.crt;
    	ssl_certificate_key /etc/nginx/certs/foo.bar.com.key;
    	add_header Strict-Transport-Security "max-age=31536000" always;
    	location /nextcloud/ {
    		proxy_pass http://nextcloud.bar.com/;
    	}
    }

    所以,最终nginx-proxy的配置应该是这样的

    端口映射
    卷映射

    容器配置

    为了让nginx-proxy找到代理对象,需要在创建容器的时候添加环境变量,如VIRTUAL_HOST=nextcloud.bar.com,下面是nextcloud的配置。

    Nextcloud配置

    经过上述配置,nginx-proxy应该已经可以正常进行https代理了,但是对于nextcloud还需要进行额外的设置。

    编辑/nextcloud/config/config.php文件,

    'trusted_domains' 中添加域名foo.bar.com

    trusted_proxies 中添加代理地址

    'overwriteprotocol' => 'https'

    'overwritewebroot' => '/nextcloud'

    最后,看看效果图

    转载于:https://www.cnblogs.com/haisong1991/p/11437681.html

    展开全文
  • NextCloud设置后台定时任务:

    千次阅读 2019-12-10 17:39:47
    官方文档:https://docs.nextcloud.com/server/17/admin_manual/configuration_server/background_jobs_configuration.html 这里写的安装了systemd系统的配置: 在 /etc/systemd/system目录新建nextcloudcron....

    官方文档:https://docs.nextcloud.com/server/17/admin_manual/configuration_server/background_jobs_configuration.html

    这里写的安装了systemd系统的配置:

    /etc/systemd/system 目录新建 nextcloudcron.service 和 nextcloudcron.timer 两个文件:

    nextcloudcron.service文件内容(修改cron.php文件路径):

    [Unit]
    Description=Nextcloud cron.php job
    
    [Service]
    User=www
    ExecStart=/usr/bin/php -f /www/wwwroot/test.wxlcloud.com/nextcloud/cron.php
    
    [Install]
    WantedBy=basic.target

    nextcloudcron.timer文件内容:

    [Unit]
    Description=Run Nextcloud cron.php every 5 minutes
    
    [Timer]
    OnBootSec=5min
    OnUnitActiveSec=5min
    Unit=nextcloudcron.service
    
    [Install]
    WantedBy=timers.target

    最后在系统中执行如下命令就可以了:

    systemctl enable --now nextcloudcron.timer

     

    展开全文
  • NextCloud(https://nextcloud.com/)是开源的、可以用来搭建自己的文件同步和共享的私有云服务器,它是ownCloud的一个分支。我使用LEMP做为NextCloud的运行环境-MariaDB, PHP-FPM 和 Nginx(Ubuntu 16.04)。1、安装...

    NextCloud(https://nextcloud.com/)是开源的、可以用来搭建自己的文件同步和共享的私有云服务器,它是ownCloud的一个分支。

    我使用LEMP做为NextCloud的运行环境-MariaDB, PHP-FPM 和 Nginx(Ubuntu 16.04)。

    1、安装MariaDB

    Ubuntu 16.04 安装 MariaDB

    首先,更新升级系统:

    $ sudo apt update

    $ sudo apt upgrade

    安装MariaDB:

    $ sudo apt install mariadb-server

    启动MariaDB服务:

    $ sudo systemctl start mysql

    查看状态:

    $ sudo systemctl status mysql

    为例提高MariaDB的安全,我们可以执行初始化安全脚本:

    $ sudo mysql_secure_installation

    默认root密码为空;然后设置root密码和其他选项:

    - Set root password? [Y/n] y

    - Remove anonymous users? [Y/n] y

    - Disallow root login remotely? [Y/n] y

    - Remove test database and access to it? [Y/n] y

    - Reload privilege tables now? [Y/n] y

    登陆MariaDB命令行:

    $ sudo mysql -u root -p

    2、为NextCloud创建一个数据库和用户

    $ sudo mysql -u root -p

    MariaDB [(none)]> CREATE DATABASE nextcloud;

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'test1234';

    MariaDB [(none)]> FLUSH PRIVILEGES;

    MariaDB [(none)]> \q

    创建数据库nextcloud;用户名nextcloud,密码test1234。

    3、安装PHP和相关模块

    $ sudo apt-get -y install php-fpm php-cli php-json php-curl php-imap php-gd php-mysql php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring

    配置PHP:

    $ sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.0/fpm/php.ini

    $ sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.0/fpm/php.ini

    $ sudo sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/" /etc/php/7.0/fpm/php.ini

    $ sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 200M/" /etc/php/7.0/fpm/php.ini

    $ sudo sed -i "s/post_max_size = .*/post_max_size = 200M/" /etc/php/7.0/fpm/php.ini

    重启PHP-FPM:

    $ sudo systemctl restart php7.0-fpm

    4、下载NextCloud

    下载地址:https://download.nextcloud.com/server/releases/,我安装时最新版本是9.0.52。

    $ cd /tmp

    $ wget https://download.nextcloud.com/server/releases/nextcloud-9.0.52.zip

    解压到/var/www/目录并更改权限:

    $ unzip nextcloud-9.0.52.zip

    $ sudo mkdir /var/www/

    $ sudo mv nextcloud /var/www/

    $ sudo chown -R www-data: /var/www/nextcloud

    5、安装配置Nginx

    $ sudo apt-get install nginx nginx-extras

    生成自签名证书:

    $ sudo mkdir -p /etc/nginx/ssl

    $ cd /etc/nginx/ssl

    $ sudo openssl genrsa -des3 -passout pass:x -out nextcloud.pass.key 2048

    $ sudo openssl rsa -passin pass:x -in nextcloud.pass.key -out nextcloud.key

    $ sudo rm nextcloud.pass.key

    $ sudo openssl req -new -key nextcloud.key -out nextcloud.csr

    $ sudo openssl x509 -req -days 365 -in nextcloud.csr -signkey nextcloud.key -out nextcloud.crt

    也可以使用免费的let encrypt。

    创建Nginx server block文件:

    $ sudo vim /etc/nginx/sites-available/nextcloud

    server {

    listen 80;

    server_name nextcloud.topspeedsnail.com;

    return 301 https://$server_name$request_uri;

    }

    server {

    listen 443 ssl http2;

    server_name nextcloud.topspeedsnail.com;

    root /var/www/nextcloud;

    ssl on;

    ssl_certificate /etc/nginx/ssl/nextcloud.crt;

    ssl_certificate_key /etc/nginx/ssl/nextcloud.key;

    ssl_session_timeout 5m;

    ssl_ciphers   'AES128+EECDH:AES128+EDH:!aNULL';

    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;

    ssl_prefer_server_ciphers on;

    add_header X-Content-Type-Options nosniff;

    add_header X-Frame-Options "SAMEORIGIN";

    add_header X-XSS-Protection "1; mode=block";

    add_header X-Robots-Tag none;

    add_header X-Download-Options noopen;

    add_header X-Permitted-Cross-Domain-Policies none;

    access_log  /var/log/nginx/nextcloud.access.log;

    error_log   /var/log/nginx/nextcloud.error.log;

    location = /robots.txt {

    allow all;

    log_not_found off;

    access_log off;

    }

    location = /.well-known/carddav {

    return 301 $scheme://$host/remote.php/dav;

    }

    location = /.well-known/caldav {

    return 301 $scheme://$host/remote.php/dav;

    }

    client_max_body_size 512M;

    fastcgi_buffers 64 4K;

    gzip off;

    error_page 403 /core/templates/403.php;

    error_page 404 /core/templates/404.php;

    location / {

    rewrite ^ /index.php$uri;

    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {

    deny all;

    }

    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {

    deny all;

    }

    location ~^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {

    include fastcgi_params;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    fastcgi_param PATH_INFO $fastcgi_path_info;

    fastcgi_param HTTPS on;

    #Avoid sending the security headers twice

    fastcgi_param modHeadersAvailable true;

    fastcgi_param front_controller_active true;

    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

    fastcgi_intercept_errors on;

    fastcgi_request_buffering off;

    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {

    try_files $uri/ =404;

    index index.php;

    }

    location ~* \.(?:css|js)$ {

    try_files $uri /index.php$uri$is_args$args;

    add_header Cache-Control "public, max-age=7200";

    add_header X-Content-Type-Options nosniff;

    add_header X-Frame-Options "SAMEORIGIN";

    add_header X-XSS-Protection "1; mode=block";

    add_header X-Robots-Tag none;

    add_header X-Download-Options noopen;

    add_header X-Permitted-Cross-Domain-Policies none;

    # Optional: Don't log access to assets

    access_log off;

    }

    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {

    try_files $uri /index.php$uri$is_args$args;

    access_log off;

    }

    location ~ /\.ht {

    deny all;

    }

    }

    注意替换上面的域名。

    创建链接:

    $ sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud

    测试Nginx配置文件:

    $ sudo nginx -t

    重启nginx:

    $ sudo systemctl restart nginx

    6、完成安装

    使用浏览器访问 https://your_domain_or_IP;

    设置管理员账户和数据库:

    0a54cadfa8e393d47143b7ba4365d161.png

    11567c546553d8d03208eca42c125290.png

    展开全文
  • 适用于Nextcloud的Keeweb 是一个开放源代码,自托管的文件同步,共享和通信应用程序平台。... 这将两者相互集成。 只需单击您的Nextcloud中的* ....git clone https://github.com/jhass/nextcloud-keeweb.git cd nextcl
  • Nextcloud集成 ...成功安装nextcloud-integration应用程序后,您可以在Awesome Bar 中搜索Nextcloud 设置,它将引导您进入以下Nextcloud 设置页面 用户名:您的Nextcloud 帐户用户名 密码:您可能为此应用创
  • nextcloud-exporter --login --server https://nextcloud.example.com 导出器将生成您需要在浏览器中打开的登录URL。 如果您为导出器创建了特殊用户,请确保使用正确的用户登录,因为应用程序密码将绑定到已登录的...
  • 具有我的docker-compose文件的存储库以设置nextcloud。 以及我使用的配置。 包括什么? 现在,docker-compose文件包含以下docker容器: nextcloud-nextcloud本身 mariaDB-要使用的数据库后端 collabora /代码-...
  • NextCloud已经使用几个月了,体验非常好。...升级https之前,先把NextCloud升级到最新版,目前版本是18.0.4。 FreeNas也升级到最新的稳定版,目前版本是FreeNAS-11.3-U2.1。 NextCloud的运行环境是F.A....

     

     

    NextCloud已经使用几个月了,体验非常好。后台的安全检测一直建议我升级https,最近空了准备动手操作一下。

    记录流程之前先介绍一下环境,安装的过程可以参考我的另一篇文章:https://blog.csdn.net/xinew4712/article/details/103576690

    升级https之前,先把NextCloud升级到最新版,目前版本是 18.0.4。

    FreeNas也升级到最新的稳定版,目前版本是 FreeNAS-11.3-U2.1。

    NextCloud的运行环境是 F.A.M.P 具体为:

    FreeBSD 11.2-STABLE

    Apache 2.4

    MariaDB 10.2

    PHP 7.2

    开启https,首先要准备证书,很多巨头都有免费证书可以用,而这次我准备自己创建证书链。主要是考虑终端少,只有自己家人在用,手工导入并信任一下根证书操作量不大。再一原因是免费的证书大多有效期为一年,好懒得每年更新一次啊。免费的https证书一般都是单向认证,即服务端认证,我想搞成类似网银U盾(本质也是证书)的双向认证,只有持有证书的客户端才能访问Apache下的指定资源,安全系数更高。

    生成证书用的JAVA的JDK自带生成SSL证书的工具:keytool,此处删除几千字,是写好又删除的。因为很久以前用keytool做过证书,这次先入为主地上来就用,走到最后发现keytool生成的证书Apache用不了,必须要转换。keytool生成的证书是JKS格式,Apache应该用openssl生成,格式为x509。强行转换也可以,要用一个工具ExportPrivateKey.zip,具体流程太复杂,删除掉不提,直接用openssl简单又快捷。

    第一次用openssl做的时候,自签名证书在Chrome上遇到了证书无效的错误,而firefox和IE都是正常的,主要是因为Chrome浏览器要求证书中必须包含“Subject Alternative Names”这一参数。

    所以在生成证书之前,先做一下准备工作,创建一个文本,内容如下:

    [root@Nginx xinew]$more host.ext 
    subjectAltName = @alt_names
    extendedKeyUsage = serverAuth
    
    [alt_names]
    
    # 域名,如有多个用DNS.2,DNS.3…来增加
    DNS.1 = xinew.abc.cn 
    # IP地址
    IP.1 = 192.168.1.1
    IP.2 = 192.168.1.70
    IP.3 = 192.168.111.159
    

    准备工作完毕,开始制做证书,由于自己要当CA,还要做双向认证,为避免混淆,再创建2个目录 ./pri 和 ./cer ,pri用于存放私钥和中间文件,cer目录用于存放证书。
    一、签发CA根证书
    1、创建CA私钥

    openssl genrsa -aes256 -out pri/ca.key 2048  先设置一个4位密码

    [root@Nginx xinew]$openssl genrsa -aes256 -out pri/ca.key 2048
    Generating RSA private key, 2048 bit long modulus
    ......+++
    ...+++
    e is 65537 (0x10001)
    Enter pass phrase for pri/ca.key:
    Verifying - Enter pass phrase for pri/ca.key:

    然后再删除密码,怕忘。

    openssl rsa -in pri/ca.key -out pri/ca.key

    [root@Nginx xinew]$openssl rsa -in pri/ca.key -out pri/ca.key
    Enter pass phrase for pri/ca.key:
    writing RSA key

    2、创建CA签名请求

    openssl req -new -key pri/ca.key -out pri/ca.req -subj "/C=CN/ST=SC/L=CD/O=xinew/OU=xinew/CN=*.abc.cn"  

    3、签发CA根证书

    openssl x509 -req -days 6666 -sha1 -extensions v3_ca -signkey pri/ca.key -in pri/ca.req -out cer/ca.cer  

    [root@Nginx xinew]$openssl x509 -req -days 6666 -sha1 -extensions v3_ca -signkey pri/ca.key -in pri/ca.req -out cer/ca.cer  
    Signature ok
    subject=/C=CN/ST=SC/L=CD/O=xinew/OU=xinew/CN=*.abc.cn
    Getting Private key

    二、服务端证书
    1、创建服务端私钥

    openssl genrsa -aes256 -out pri/server.key 2048  还是先设置一个4位密码。

    然后再删除密码,这一步不做的话,每次重启Apache都要交互一下密码。也许有直接创建无密码私钥的方法,没好好去查。

    openssl rsa -in pri/server.key -out pri/server.key

    2、创建服务端证书请求
    openssl req -new -key pri/server.key -out pri/server.req -subj "/C=CN/ST=SC/L=CD/O=xinew/OU=xinew/CN=xinew.abc.cn"  

    3、利用CA根证书,签发服务端证书 

    openssl x509 -req -CA cer/ca.cer -CAkey pri/ca.key -in pri/server.req -out cer/server.cer -days 6666 -extfile host.ext -sha256 -set_serial 0x1111

    注意这里用到了host.ext,不加这个参数的话,Chrome不认。还要注意第2步的域名要填完整的,真实存在的域名,可以直接访问到NextCloud的域名哈。

    4、转为p12格式

    openssl pkcs12 -export -cacerts -inkey pri/ca.key -in cer/ca.cer -out cer/ca.p12

    pc端导入ca.cer没问题,手机端有的不行,要用p12格式。当然转换server.cer也可以的,但如果改天再弄个xinew2.abc.cn就不行了。

    三、单向https认证测试

    将上一步生成的两个文件 server.key、server.cer 考到 /usr/local/www/nextcloud/config/ 下,此时可以测试单向认证了。

    找到Apache配置文件目录,我的是user/local/etc/apache24/conf 打开httpd.conf文件,注意不要把FreeNas的Apache和Jails的Apache搞混了啊,操作之前一定要小心核对一下。

    找到下面两行代码

    #LoadModule ssl_module modules/mod_ssl.so

    #Include etc/apache24/extra/httpd-ssl.conf

    去掉前面的#号

    编辑httpd-ssl.conf,把VirtualHost段的内容全部删除掉。进入Includes目录,cp nc.conf nc.ssl.conf

    为了调试方便,将Nat路径上的所有IP都加入到ServerName,调试完毕只保留域名即可。

    ServerName xinew.*.*:8443,192.168.1.70:443,192.168.1.1:8443,192.168.111.158:8443

    并进入下面几行内容:

    SSLEngine on
    SSLCertificateFile /usr/local/www/nextcloud/config/server.crt
    SSLCertificateKeyFile /usr/local/www/nextcloud/config/server.key

    重启Apache,这里用浏览器打开 https://xinew.abc.cn:8443,都会提示“您的连接不是私密连接”、“证书不被信任”之类,可以看到:

    可以看到,颁发者是*.abc.cn这个CA,而*.abc.cn不被信任,下面要导入ca.cer到各个浏览器,放在可以信任的根证书颁发机构下。主流的firefox,chrome导一下就好了,连接变成了小锁头,虽然ff不认可,也不影响安全的加密连接。

    四、配置双向认证

    双向认证安全性要高很多了,相当于银行的U盾,只允许证书持有者访问。这对于暴露于公网,且使用了开源平台的私有小项目来说大概是最佳实践了。

    将 /usr/local/etc/apache24/Includes 下的 nc.ssl.conf 中加入

    SSLCACertificateFile "/usr/local/www/nextcloud/config/ca.cer"
    SSLVerifyClient require
    SSLVerifyDepth  10

    这里的ca.cer就是一、3步骤中创建的CA根证书。如果此时重启,https就无法访问了,因为客户端证书还没做呢。当然,这也是双向认证的本意,让没有证书的攻击者无从下手。

    五、签发客户端证书

    1、创建客户端私钥
    openssl genrsa -aes256 -out pri/client.key 2048  配置一个4位密码

    2、去除密码

    openssl rsa -in pri/client.key -out pri/client.key  

    3、创建客户端证书请求
    注意这里的CN,随便填什么都行,客户端无所谓的。
    openssl req -new -key pri/client.key -out pri/client.req -subj "/C=CN/ST=SC/L=CD/O=xinew/OU=xinew/CN=xinew"  


    4、用CA根证书,签发客户端证书

    openssl x509 -req -days 6666 -sha1 -extensions v3_req -CA cer/ca.cer -CAkey pri/ca.key -CAserial ca.srl -CAcreateserial -in pri/client.req -out cer/client.cer  

    5、转换成p12格式 

    注意这里要多加一步,安全机制上要防止私自复制的证书被导入浏览器,所以这一步转格式的同时要加上密码。

    $openssl pkcs12 -export -clcerts -inkey pri/client.key -in cer/client.cer -out cer/client.p12

    [root@Nginx xinew]$openssl pkcs12 -export -clcerts -inkey pri/client.key -in cer/client.cer -out cer/client.p12
    Enter Export Password:
    Verifying - Enter Export Password:

    六、双向认证测试

    为FireFox导入client.p12证书,再次刷新NextCloud的登录界面,会弹出证书选择窗口,由于FF只装了一个客户端证书,下拉菜单中只有“xinew”一项可选:

    Chrome也差不多,界面略有不同而已:

    点击确定之后,熟悉的界面又回来了。

    七、最后的一些扫尾工作

    1、处理新出现的安全提示

    开启https之后,后台的安全检查会报出一个新的警告,只要把下面的代码加入到 nc.ssl.conf 就可以了。

    <IfModule mod_headers.c>
           Header always set Strict-Transport-Security "max-age=15552000;includeSubDomains; preload"
    </IfModule>

    2、去除无关的调试IP

    来到 /usr/local/etc/apache24/Includes  目录,在 nc.ssl.conf  中,ServerName中配置了很多调试IP,以避免出现NAT错误,双向调通之后,这些过程IP可以都删除了,只保留xinew.abc.cn:8443即可。

    同理,来到目录 /usr/local/www/nextcloud/config ,编辑config.php

    trusted_domains,项目下,只保留xinew.abc.cn:8443即可。(非必须)

    3、关闭传统http访问

    来到 /usr/local/etc/apache24/Includes  目录,将nc.conf改名:

    mv nc.conf nc.conf.http

    使得80端口的虚拟主机失效,然后再来到 /usr/local/etc/apache24 目录,编辑httpd.conf

    将Linsten 80 一行注释,否则会暴露php源码。

    重启之后,传统的http访问就被关闭了。但由于NextCloud在Jails中,它的80端口无人监听,请求会转发给FreeNas,这时原NextCloud的http页面就变成访问FreeNas了,FreeNas是没有必要暴露于公网的,即然http已经关闭,顺手也要把公网到家各个路由节点的NAT配置清除。

    4、公网域名的内网解析

    与NAS在同一局域网的设备,比如家里的PC、移动到家的手机、Pad如果仍通过公网域名访问NextCloud,数据将沿着一条出口转内销的路径与NextCloud互动,虽然能用,但效率太低,这时就需要在家里的路由设备上,为这个公网域名指定一个内网IP,TTL与公网保持一致,设置稍短一些,比如10分钟。有条件的也可以在办公环境下做类似的设置,让数据沿最优路由传输。抛开工作、居家两大场景,在外移动期间的偶尔使用,就依赖各大运营商的4G网络吧。

    5、更新所有终端接入方式

    此时的所有终端的NextCloud已经不能用了,要更新一下接入IP,导入一下证书。PC端很简单,步骤类似浏览器。

    至于手机端怎么实现双向认证,好像又掉进了另一个坑儿里,说来话长,可能要再开一篇帖子来填坑吧。

    展开全文
  • 文:高效人生手册原创文章,转载请注明在前面提到的两篇文章中,我们分享了如何在Linux系统中(分别是Ubuntu和Centos)部署Nextcloud私有云盘的方法。高效人生手册:在Ubuntu上部署Nextcloud私有云盘的方法​...
  • nextcloud 你可以在自己的计算机上共享任何文件或文件夹,并将它们与 nextcloud 服务器同步。当你把文件放入共享目录,这些文件就会立即同步到 nextcloud 服务器以及所有相关联的 nextcloud / owncloud 桌面客户端、...
  • 这些说明用于在设置单节点Nextcloud实例。 将nextcloud.example.com替换为所需的子域。 通过转到查找您的公共IPv4地址。 在您的域的DNS中为所需的子域添加A记录。 例如,为nextcloud创建一个值为208.69.38.205的A...
  • 设置nextcloud上传文件的大小

    万次阅读 2019-12-09 11:13:05
    文档说明 ...以下是管理员官方文档的说明,摘自https://docs.nextcloud.com//server/14/admin_manual/configuration_files/big_file_upload_configuration.html: The default maximum file size for...
  • aws s3 上传文件Nextcloud is an open source software suite that, when installed on a Linux server, can leverage storage capacity for saving, editing, and consuming a wide range of document types — ...
  • 搭建私人网盘Nextcloud一、Nextcloud介绍ke维基百科:Nextcloud是一套用于创建网络硬盘的客户端-服务器软件。其功能与Dropbox相近,但Nextcloud是自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。...
  • 原文链接:https://dsx2016.com/?p=1778 公众号:大师兄2016 配置文件 docker-compose.yml version: "3" services: service.onlyoffice: image: onlyoffice/documentserver container_name: onlyoffice ...
  • Nextcloud基本使用方法

    万次阅读 2019-12-05 14:37:23
    下载和安装 Nextcloud 客户端 客户端可以在这里下载...如果您是 Windows 用户,可以直接点击这个链接https://download.nextcloud.com/desktop/releases/Windows/Nextcloud-2.6.1-setup.exe。 如...
  • docker-nextcloud-spreed-signaling 这是Nextcloud Talk的Spreed信令服务器的docker映像。 该图像具有debian基础。 你可以找到像和源代码,可以发现有上镜。 标签 最新的0.2,0.2.x 用法 要配置信令服务器,您可以...
  • nextcloud应用 如果写作是您工作或日常工作的一部分,您可能会发现Nextcloud开源文件同步和共享应用程序是非常有用的工具。 首先,它为您提供免费,安全且易于访问的云文件存储。 其次,它是完全可定制的,这意味...
  • Ubuntu部署Nextcloud

    千次阅读 2018-12-23 22:56:48
    NextCloud snap install nextcloud 设置端口 snap set nextcloud ports.http=8080 访问 http://127.0.0.1:8080 代码目录位置: 其他位置--计算机-snap-nextcloud-10314     方法2:...
  • :cloud: 将此应用程序克隆到Nextcloud的apps文件夹中: git clone https://github.com/nextcloud/activity.git :check_mark_button: 通过Nextcloud的应用管理启用应用 :party_popper: 派对时间! 主分支上的质量...
  • 安装流程配置流程非常简单,主要是参考了下面这篇博文配置,在宝塔面板下安装nextcloud,非常简单。大概总结以下步骤:路径:getnestcloud → Server packages → Download第二步:将安装包上传至网页服务器根目录并...
  • Nextcloud网盘安装

    2021-03-22 17:57:47
    Nextcloud所有数据的安全之家。根据您的条件,可以通过任何设备访问并共享您的文件,日历,联系人,邮件及其他内容。类似于百度云盘,不光提供web访问,还提供手机app(安卓和IOS)已经电脑端应用。Nextcloud为开源...
  • 下面介绍一下使用docker-compose搭建Nextcloud,并且使用Nginx的反向代理开启https的方法。 直接搭建的文章可以参考我的这一篇博文:Centos 7.6搭建Nextcloud 17.0.0个人云盘详细教程 二、环境准备 基础环境的搭建...
  • Nextcloud环境搭建

    2021-01-19 19:38:51
    Nextcloud环境搭建 由于最近分配到的项目是为nextcloud开发一个插件,所以写了一个有关于nextcloud环境配置的文章 本文的系统环境为虚拟机centos7(windows不支持nextcloud),php环境为7.2,mysql版本为5.7,next...
  • Ubuntu安装nextcloud-17.0.1

    千次阅读 2019-11-10 21:07:11
    Linux版本: Ubuntu-18.04.1 【前提】安装MariaDB/Mysql ...wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip 2.将nextcloud-17.0.1.zip解压 unzip nextcloud-17.0.1.zip ...
  • QNAP 安装nextcloud私有网盘

    千次阅读 2020-12-21 23:44:42
    下载nextcloud服务端,并上传到web文件夹下 ...https://nextcloud.com/install/ 然后把压缩包解压,再上传到如图Web文件夹内 QNAP设置 1、开启web服务 2、在web服务中创建虚拟机 3、从...
  • 利用NextCloud配置私有云

    万次阅读 2017-06-29 02:04:55
    利用NextCloud配置私有云利用NextCloud配置私有云 安装MariaDB ...NextCloud (https://nextcloud.com/) 是开源云盘服务器,此处利用 LEMP 搭建 NextCloud 运行环境-MariaDB, PHP-FPM 和 Nginx (Ubu
  • Nextcloud搭建过程

    千次阅读 2018-04-16 15:07:02
    Nextcloud搭建过程https://www.yidianzixun.com/article/0FWmb6aq?s=9&amp;appid=xiaomi&amp;ver=3.8.6&amp;utk=03jyfomf安装1.安装LNMP或LAMP环境2.在相应web目录下解压nextcloud-12.0.4.zip3.web访问...
  • 使用Docker技术部署NextCloud

    千次阅读 2020-04-07 15:59:10
    NextCloud是一个开源的私有云服务器,可用于家庭及企业,有关NextCloud的详细说明可参看其官网(英文页面):https://nextcloud.com/。本文简要介绍如何使用Docker技术在Ubuntu 16.04上快速安装部署NextCloud服务器...
  • nextcloud 运行在 docker 中,之前一直是通过 http 协议 ip 端口方式访问没有问题。 修改为 nginx 反向代理并设置https 协议访问后,手机 app 和 pc 端均不能访问。 解决办法: 修改 nextcloud 配置文件,在 /var...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,320
精华内容 4,128
关键字:

nextcloud设置https