搭建自己的Bitwarden服务器(此文章已过期)

安装与部署

这篇文章将会向你介绍如何在你自己的服务器上安装与部署Bitwarden。Bitwarden是一个跨平台应用,你可以将它安装部署到Linux,macOS或者Windows上。

太长不看

  1. 将一个域名解析到你的服务器并打开80和443端口。
  2. 安装DockerDocker Compose
  3. https://bitwarden.com/host获取一个安装id与秘钥。
  4. 安装部署Bitwarden。
  5. Bash

    [cc lang=”bash”] curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh \ && chmod +x bitwarden.sh ./bitwarden.sh install ./bitwarden.sh start [/cc]

    PowerShell

    [cc lang=”powershell”] Invoke-RestMethod -OutFile bitwarden.ps1 \ -Uri https://go.btwrdn.co/bw-ps .\bitwarden.ps1 -install .\bitwarden.ps1 -start [/cc]

  6. 调整配置并重启[cci]./bwdata/env/global.override.env[/cci]
  7. Bash

    [cc lang=”bash”]./bitwarden.sh restart[/cc]

    PowerShell

    [cc lang=”powershell”].\bitwarden.ps1 -restart[/cc]

  8. 测试。访问你的域名,注册一个账户并登录。

系统需求

  • 处理器:64位,1.4Ghz或以上。
  • 内存:2GB或以上。
  • 存储空间:10GB货以上。
  • Docker:Engine 1.8以上,Compose 1.173.1以上。

如果你正在寻找一个优质且价格合理的云服务供应商,我们建议:

配置你的域名

默认情况下,Bitwarden会通过80 (http) 与443 (https) 端口向用户提供服务。你应该打开这些端口,以便B从内部或/和外部进行访问Bitwarden。你也可以按需求在安装时选择其它端口。

如果你向外部提供Bitwarden服务,那么你应该拥有一个指向你服务器的域名(例如bitwarden.example.com)。在安装开始前,你应该做好这些配置。

或者,如果只是测试,你可以将Bitwarden安装到“localhost”。

安装DOCKER

Bitwarden将通过Docker在你的机器上部署与运行。在Docker Community (free) 和Enterprise版中运行Bitwarden是一样的。你应该评估哪个版本更适合你。另外,这些容器是通过Docker Compose进行部署的。在开始安装Bitwarden之前,必须先安装Docker与Docker Compose。

更多相关信息,请参阅以下官方Docker文档:

注意 一些Docker安装程序已经包含了Docker Compose,比如Windows和macOS的Docker安装程序。

作为参考,你可以在Docker Hub上找到官方的Bitwarden镜像:https://hub.docker.com/u/bitwarden/

安装BITWARDEN

我们努力让安装Bitwarden变得非常简单。根据你的环境(非Windows或 Windows),我们提供Bash(Linux或macOS)和PowerShell(Windows)脚本来帮助你安装和管理Bitwarden。下面的步骤将包括Bash和PowerShell。

  1. 将main Bitwarden脚本下载到你要安装到的地方:
  2. 注意 所有的Bitwarden资源都将被安装到相对于安装脚本所在目录./bwdata目录下

    Bash

    [cc lang=”bash”] curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh \ && chmod +x bitwarden.sh [/cc]

    PowerShell

    [cc lang=”powershell”] Invoke-RestMethod -OutFile bitwarden.ps1 \ -Uri https://go.btwrdn.co/bw-ps [/cc]

  3. 开始安装
  4. Bash

    [cc lang=”bash”] ./bitwarden.sh install [/cc]

    PowerShell

    [cc lang=”powershell”] .\bitwarden.ps1 -install [/cc]

  5. 安装中
  6. 安装id和秘钥

    每个Bitwarden都需要配置唯一的id和安装秘钥。它们将用作:

    1. 注册你的安装与联系方式,以便在重要更新是联系你。
    2. 验证付费功能许可。
    3. 通过身份验证,中继服务器将通知推送到Bitwarden客户端应用程序。

    你不应该将一份id与安装秘钥用于多个Bitwarden安装,它们应该被保密。

    你可以从https://bitwarden.com/host获取id与安装秘钥。

    SSL证书

    • Bitwarden可以为你的域名生成一个免费的可信任的SSL证书,它们由Let’s EncryptCertbot提供。每次重启Bitwarden,都会进行证书更新检查。使用Let’s Encrypt自动证书需要用到80与443端口。或者,你也可以选择“使用自己的SSL证书”手动添加自己的Let’s Encrypt证书。
    • 如果你已经有了自己的SSL证书,你可以把它放到[cci]./bwdata/ssl/your.domain.com[/cci]中。这个路径你也可以通过配置[cci]./bwdata/config.yml[/cci]进行修改。
      • certificate.crt(必须)如果不这样做,你可能需要将主证书与CA提供的任何中间证书绑定在一起,否则你将收到SSL信任错误。如:[cci]cat domain.crt ca.crt >> certificate.crt[/cci]。点击此处了解更多信息。
      • private.key(必须)
      • ca.crt(可选,如果是可信的)
      • dhparam.pem(可选,如果使用Diffie Hellman Ephemeral Parameters)。你可以通过OpenSSL[cci]openssl dhparam -out ./dhparam.pem 2048[/cci]创建你自己的dhparam.pem。
    • 如果你只是测试而且没有SSL证书,那么可以为你的安装生成一个自签名的证书。自签名证书不被Bitwarden客户端所信任,所以你需要在每一个你想使用Bitwarden的设备上安装这个证书。
    • 如果你在安装时选择不配置SSL,那么在安装之前你必须一个支持SSL的代理进行安装。Bitwarden需要HTTPS。如果你想不通过HTTPS使用Bitwarden,你将收到错误信息。

安装后的环境配置

安装配置文件

Bitwarden安装脚本使用来自生成的必要资源的设置。进阶安装(如,使用备用端口代理安装)需要对标准安装提示期间没有提供的选项进一步配置调整。另外,如果你需要更改安装的默认设置(如,更改用于Bitwarden的域名)你可以在[cci]./bwdata/config.yml[/cci]中修改。

更改设置后,你需要使用如下命令应用这些设置:[cci]./bwdata/config.yml[/cci]

Bash

[cc lang=”bash”]./bitwarden.sh rebuild[/cc]

PowerShell

[cc lang=”powershell”].\bitwarden.sp1 -rebuild[/cc]

环境变量

一些功能如SMTP邮箱服务,YubiKey OTP API,HaveIBeenPwned (HIBP) API等并没有在安装时被配置,你可以在[cci]./bwdata/env/global.override.env[/cci]找到这些设置(还有一些其它的)。编辑这些文件并替换占位符。

例如:

[cc] globalSettings__yubico__clientId=294620155 globalSettings__yubico__key=owdez88RdxVZuGbZ4fv globalSettings__mail__smtp__host=smtp.sendgrid.net globalSettings__mail__smtp__port=587 globalSettings__mail__smtp__ssl=false globalSettings__mail__smtp__username=apikey globalSettings__mail__smtp__password=SG.YOUR.API_KEY [/cc]

如果你打算使用YubiKeys来实现二步验证,你可以在https://upgrade.yubico.com/getapikey/获得你的YubiKey客户端id和秘钥。

启动BITWARDEN

当你完成Bitwarden的安装与配置后,你就可以启动它了:

Bash

[cc lang=”bash”]./bitwarden.sh start[/cc]

PowerShell

[cc lang=”powershell”].\bitwarden.sp1 -start[/cc]

验证所有容器是否正常:

[cc]docker ps[/cc]

祝贺你!Bitwarden现在运行正常。你可以在你的浏览器访问[cci]https://your.domain.com[/cci]并确认这件事。你应该注册一个新账号并登录。

脚本命令

Bitwarden主脚本([cci]bitwarden.sh[/cci]或[cci]bitwarden.ps1[/cci])可用命令:

注意 PowerShell用户需要在命令前添加前缀[cci]-[/cci]。举个例子:[cci].\bitwarden.ps1 -start[/cci]

命令说明
[cci]install[/cci]开始安装
[cci]start[/cci]启动所有容器
[cci]restart[/cci]重启所有容器(与start相同)
[cci]stop[/cci]停止所有容器
[cci]update[/cci]更新所有容器与数据库
[cci]updatedb[/cci]更新/初始化数据库
[cci]updateself[/cci]更新主脚本
[cci]updateconf[/cci]更新所有容器但不中止正在运行的实例
[cci]rebuild[/cci]根据[cci]config.yml[/cci]重新应用安装资源
[cci]help[/cci]列出所有命令

手动安装

对大多数用户来说,我们建议使用安装脚本,但是,你也可以使用Docker和Docker Compose手动安装与配置Bitwarden。如果你非常熟悉Docker技术并希望在Bitwarden安装时有更多的自定义选项,手动安装可能更适合你。手动安装遵循的步骤与安装脚本自动执行的大多数步骤相同。

警告 手动安装仅适用于进阶用户。 手动安装将不能自动更新Bitwarden安装的某些依赖项。从一个版本升级到另一个版本时,你需要手动修改某些环境变量:Nginx的[cci]default.conf[/cci],[cci]docker-compose.yml[/cci]等。我们将会尝试在GitHub的发行说明中突出显示这些内容。你也可以监视GitHub上Bitwarden安装脚本使用的依赖项的更改。

  1. GitHub的发行页面下载Bitwarden依赖项的stubbed版本([cci]docker-stub.zip[/cci])。
  2. 创建一个新的文件夹并重命名为[cci]bwdata[/cci],解压[cci]docker-stub.zip[/cci]到该文件夹。文件夹结构应该是这样的:[cci]./docker/docker-compose.yml[/cci],当然,你可以根据需要在主机上随意更改这些映射。
  3. https://bitwarden.com/host获取你的[cci]installation__id[/cci]和[cci]installation__key[/cci]并将它们应用于环境变量:[cci]./env/global.override.env[/cci]。
  4. 将[cci]./env/global.override.env[/cci]中的[cci]baseServiceUri__*[/cci]与[cci]attachment__baseUrl[/cci]修改为你的域名。
  5. 为身份容器生成一个[cci].pfx[/cci]证书并使其拥有[cci]./identity/identity.pfx[/cci]这样的路径。
  6. 例如:

    [cc lang=”powershell”] openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout identity.key \ -out identity.crt -subj “/CN=Bitwarden IdentityServer” -days 10950 openssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key \ -in identity.crt -certfile identity.crt -passout pass:IDENTITY_CERT_PASSWORD [/cc]

    确保在[cci]./env/global.override.env[/cci]中提供你的[cci]IDENTITY_CERT_PASSWORD[/cci]应用程序环境变量。

  7. 复制你的SSL证书和秘钥到[cci]./ssl[/cci]文件夹中。默认情况下,这个文件件是映射到nginx的[cci]/etc/ssl[/cci]。可以根据需要在[cci]/nginx/default.conf[/cci]调整这个位置。
  8. 注意

    访问Bitwarden及其API必须通过HTTPS。你应该为nginx提供一个受信的SSL证书,或者在安装前为Bitwarden客户端应用程序提供HTTPS代理。

    自签名证书示例:

    [cc lang=”powershell”] # mkdir ./ssl/bitwarden.example.com openssl req -x509 -newkey rsa:4096 -sha256 -nodes -days 365 \ -keyout ./ssl/bitwarden.example.com/private.key \ -out ./ssl/bitwarden.example.com/certificate.crt \ -reqexts SAN -extensions SAN \ -config <(cat /usr/lib/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:bitwarden.example.com\nbasicConstraints=CA:true')) \ -subj "/C=US/ST=New York/L=New York/O=Company Name/OU=Bitwarden/CN=bitwarden.example.com" [/cc]

  9. 根据你的域名在[cci]./nginx/default.conf[/cci]更新[cci]server_name[/cci],HTTPS重定向以及[cci]Content-Security-Policy[/cci]标头。
  10. 为[cci]sqlServer__connectionString RANDOM_DATABASE_PASSWORD[/cci],[cci]internalIdentityKey RANDOM_IDENTITY_KEY[/cci]和[cci]duo__aKey RANDOM_DUO_AKEY[/cci]生成你自己的随机密码,并在.[cci]/env/global.override.env[/cci]中更新。同时确保在[cci]./env/mssql.override.env[/cci]中应用同样的[cci]RANDOM_DATABASE_PASSWORD[/cci]。
  11. 在[cci]./web/app-id.json[/cci]中包含你的域名URL(如:[cci]https://bitwarden.example.com[/cci])。
  12. 在[cci]./env/global.override.env[/cci]中配置你的SMTP邮件服务器或其它任何你要的设置。
  13. 在[cci]./env/uid.env[/cci]中映射运行Bitwarden容器的用户与组id。
  14. 示例

    [cc] LOCAL_UID=1000 LOCAL_GID=1000 [/cc]

    此外,你可以将[cci]./env/uid.env[/cci]留空,容器将以[cci]nobody:nobody[/cci]运行。

  15. 开始安装Bitwarden,然后通过你的域名进行访问。
  16. [cc]docker-compose -f ./docker/docker-compose.yml up -d[/cc]

      Translated by SnowMoonSS from Bitwarden Help Center

1人评论了“搭建自己的Bitwarden服务器(此文章已过期)”

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据