福斯, linux, 联网, nextcloudpi, 安全

让’s Apache的加密安装程序

此安装程序提供了一种非常简单的方法来安装带有 让’s Encrypt 用于Apache服务器。

组态

请注意,您需要同时访问端口80和443,才能进行身份验证质询

  • 是从房子外部和内部访问的URL。使用您注册时使用的同一个人 no-ip.org 或任何其他DDNS提供商。您的网站必须可以从互联网上访问。
  • 电子邮件 万一ISRG必须与您联系。
  • 霍斯特 对NextCloudPi保持不变。否则,指向包含以下内容的虚拟主机的配置文件: .

您的证书将每月自动更新。

安装

得到它已经做

我已将此包含在最新版本的 下一页CloudPi,即刻可用的Raspbian 8映像,具有NextCloud 11,HTTP2,PHP7等。

请按照提供的说明进行操作。一旦启动并运行,从您的Raspberry Pi编写

sudo nextcloudpi-config
自己做

首先,克隆 回购

吉特 clone //github.com/nachoparker/nextcloud-raspbian-generator.git
通过SSH在线安装

使用 通用软件安装程序 与脚本 letsencrypt.sh

./installer.sh letsencrypt.sh 192.168.0.130

调整为服务器的IP地址。

此过程针对Raspberry Pi进行了优化,但可以在certbot支持的任何系统中使用。如果您没有使用Raspberry Pi的默认用户名和密码,则可以在命令行中指定用户名和/或密码。

PIUSER=nacho PIPASS=ownyourbits ./installer.sh letsencrypt.sh 192.168.0.130
离线安装(Raspbian)

您可以使用以下方法离线执行此过程 量化宽松.

提取SD卡,然后将图像复制到计算机(调整sdx)。

 sudo dd if=/dev/sdx of=my_rpi.img bs=4M

然后,

./installer.sh letsencrypt.sh 192.168.0.130 my_rpi.img

完成后,您可以将其复制回(调整sdx)。

sudo dd if=my_rpi.img if=/dev/sdx bs=4M

细节

每当我们设置自托管服务时,我们始终面临着严峻的形势。

是否 您自己的私有云,REST服务或通过HTTPS运行的任何其他服务(例如WebDav或CalDav),’问题:HTTPS是必须的,但是大多数人唯一的选择是对自己的证书进行自我签名。

我们的系统依赖 证书颁发机构(CA) 作为可信任的第三方来验证HTTPS连接。这是网络用来防止中间人攻击的方法,在这种情况下,某些人可能会伪装成您要连接的服务器。

使用自签名证书,可以对通信进行端到端加密,但是我们无法验证另一端的身份。浏览器非常清楚地表明连接可能存在风险。

这意味着您和任何其他用户将不得不接受不受信任证书的例外,这不仅看起来真的很尴尬,而且在许多情况下,这对非技术用户来说是一个障碍。

即使您接受连接,警告也将保留在那里,以提醒您。 Android是另一个示例,其中自签名证书在每次启动时都会发出警告。

除此之外,许多REST服务的客户端都不会为您提供使用自签名证书的选项。某些使用NextCloud的Android应用就是这种情况。

即使他们允许,也存在将自签名证书复制到手机上并进行安装的额外步骤。绝对不是最有趣的事情。

这种情况已经存在很长时间了。

幸好互联网安全研究小组(ISRG)来救援。他们提供公共和免费服务,可在其中验证您的证书,从而将其引入信任链。

此外,联邦军还提供 Certbot,这是一种自动客户端,可为您的网络服务器获取并部署SSL / TLS证书,以便与Let一起使用’s Encrypt.

 

该过程可以自动进行许多分发,

  • 生成证书,就像使用 的openssl
  • 进行挑战以使用 ACME协议。这就是在配置时需要连接的原因。
  • (可选)部署密钥并为许多流行的解决方案配置服务器

之后,让’s Encrypt(已被信任并存在于系统中的CA授权)将验证您的服务器’的身份给浏览器。

这是过程的输出

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for mycloud.no-ip.org
Waiting for verification...<em></em>
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
Deploying Certificate to VirtualHost /etc/apache2/sites-available/nextcloud.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled //mycloud.no-ip.org

You should test your configuration at:
//www.ssllabs.com/ssltest/analyze.html?d=mycloud.no-ip.org
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/mycloud.no-ip.org/fullchain.pem. Your cert
   will expire on 2017-06-13. To obtain a new or tweaked version of
   this certificate in the future, simply run letsencrypt-auto again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work 通过 :

   Donating to ISRG / 让's Encrypt:   //letsencrypt.org/donate
   Donating to EFF:                    //eff.org/donate-le

下次您尝试打开自托管服务时,警告将消失。

#!/bin/bash

# 让's encrypt certbot installation on Raspbian 
# Tested with 2017-03-02-raspbian-jessie-lite.img
#
# Copyleft 2017 通过  Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com>
# GPL licensed (see end of file) * Use at your own risk!
#
# Usage:
# 
#   ./installer.sh letsencrypt.sh <IP> (<img>)
#
# See installer.sh instructions for details
#

DOMAIN_=mycloud.ownyourbits.com
EMAIL_=mycloud@ownyourbits.com
VHOSTCFG_=/etc/apache2/sites-available/nextcloud.conf
DESCRIPTION="让's Encrypt: automatic signed SSL certificates"

install()
{
  apt-get update
  apt install -y --no-install-recommends 吉特 
  cd /etc
  吉特 clone //github.com/letsencrypt/letsencrypt
  /etc/letsencrypt/letsencrypt-auto --help # do not actually run certbot, only install packages
}

# tested with 吉特 version v0.11.0-71-g018a304
configure() 
{
  grep -q ServerName $VHOSTCFG_ && \
    sed -i "s|ServerName .*|ServerName $DOMAIN_|" $VHOSTCFG_ || \
    sed -i "/DocumentRoot/aServerName $DOMAIN_" $VHOSTCFG_ 

  /etc/letsencrypt/letsencrypt-auto -n --no-self-upgrade --apache --agree-tos -m $EMAIL_ -d $DOMAIN_
  echo "* 1 * * 1 root /etc/letsencrypt/certbot-auto renew --quiet" > /etc/cron.d/letsencrypt-ncp
}

cleanup()
{
  apt-get autoremove -y
  apt-get clean
  rm /var/lib/apt/lists/* -r
  rm -f /home/pi/.bash_history
  systemctl disable ssh
}

# License
#
# This script is free 软件; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published 通过 
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This script is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this script; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA  02111-1307  USA

参考文献

//wiki.archlinux.org/index.php/Let%u2019s_Encrypt

//certbot.eff.org/docs/using.html

//letsencrypt.org/getting-started/

 

作者: 纳乔帕克

谦虚地分享我认为有用的东西 [ 的github 码头工人hub ]

16 评论s

  1. 您好,
    重新安装后如何“NextCloudPi” ?
    我的私钥.pem怎么样?重新格式化SD卡之前,我是否需要将此密钥备份到棍子上?
    谢谢

  2. 我有一个奇怪的问题…

    输入:

    sudo nextcloudpi-config
    

    配置应用程序附带…

    
    │ │         dnsmasq     "DNS server with cache"                            │ │
    │ │         fail2ban    "Brute force protection"                           │ │
    │ │         nc-datadir  "Change your data dir location"                    │ │
    │ │         nc-limits   "Configure system limits for 下一页CloudPi"          │ │
    │ │         no-ip       "free Dynamic DNS provider (need account)"         │ │
    

    没有让’s加密。所以我决定安装它…
    我输入:

    
    git clone //github.com/nachoparker/nextcloud-raspbian-generator.git
    

    这来了…

    
    fatal: destination path 'nextcloud-raspbian-generator' already exists and is not an empty directory.
    

    好的,那很有道理。我已经做了那部分…

    我进入…

    
    ./installer.sh letsencrypt.sh 192.168.0.130
    

    我得到这个回报…

    
    -bash: .installer: command not found
    

    I’〜目录中的m。一世’m寻找一组简单的复制/粘贴说明以安装此选项。

    我应该重新下载完整图像并重新开始吗?我之前下载的完整图片没有让’s加密配置工具。也许我只是在另一个版本问世之前就抢了完整版本。

    当我的构建完成后,加载了数据并主题化后,我无法进行简单的清除并开始像第一次这样做一样。因此,任何帮助让’现在非常感谢您使用的Encrypt。感谢您重视这一点。

    – 暗影迷

  3. 显然,我的ISP阻止了端口80和443,这对于住宅互联网提供商来说是可以理解的。我可以将外部端口9000向前端口转发到内部端口443,然后转到website.com:9000,但是在尝试配置letsencrypt时无法输入website.com:9000。

    有没有更好的方法来启用https,所以我不’t get the “untrusted domain” error message?

  4. 做得好。目前,NextcloudPi实际上是部署Nextcloud实例的最简单方法。关于让’■加密:它需要每30天左右更新一次证书。不会’像nc-letsencrypt-auto这样的选项,基于cron-job进行更新是否有意义?这将使我们许多人不必每月访问ssh(最有可能是google)来手动续订证书。

  5. 您好,
    我很高兴找到您优秀的NextcloudPI,因为在不得不进行冗长而繁琐的安装过程之前。感谢那!
    现在,我尝试使用letencrypt获得接受的证书。将路由器设置为raspberrypi之后’的地址,nextcloudPI在DNS地址上可见,我什至可以通过Internet输入nextcloudPI,但是没有证书(带有已知警告)。
    当我使用ncp-config安装letsencrypt时,出现以下错误:“服务器无法连接到客户端以验证域::提取 http://mycloud.org/.well-known/acme-challenge/5tvmdBSliIS2BU_C_iDVEJ5dP1lBIkz_dy9LHTtVRDE: 超时”
    现在的问题是,在我的nextcloudPI-server中没有目录“.well-known”。我还有其他步骤需要的地方吗?
    感谢帮助,

    格茨

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *