在Ubuntu上安装Lemur证书管理器
本教程展示了在Ubuntu 16.04 LTS上安装Lemur证书管理软件。 Lemur是NetFlix的一个开源项目,用于为客户/客户生成证书。 在本文中,我们将设置一个基于Python的虚拟环境,安装所需的软件包,配置基本的Web服务以及访问证书管理器的仪表板。 假设您有一个干净的Ubuntu 16.04 LTS实例正在运行,例如在Cloud(如AWS)或本地虚拟化环境中运行。
依赖
您需要运行狐猴所需的一些基本先决条件:
- Linux操作系统(本教程使用Ubuntu 16.04 LTS)。
- Python 3.5或更高版本。
- PostgreSQL 9.4或更高版本。
- Nginx Web服务器。
安装构建依赖关系
当您在裸露的Ubuntu操作系统上安装Lemur时,您需要获取以下软件包,以便Lemur可以正确构建它的依赖关系:
.. code-block :: bash
sudo apt-get update
sudo apt-get install nodejs nodejs-legacy python-pip python-dev python3-dev libpq-dev build-essential libssl-dev libffi-dev libsasl2-dev libldap2-dev nginx git supervisor npm postgresql
上述命令将安装nodejs,pip,nginx,git,npm和PostgreSQL数据库包。
注意:安装节点包管理器可以在/ usr / bin / nodejs路径而不是/ usr / bin / node上创建nodejs bin。 运行以下命令以在所需路径上创建软链接。
sudo ln -s /user/bin/nodejs /usr/bin/node
现在,使用以下命令安装virtualenv软件包。
sudo pip install -U virtualenv
设置构建环境
在本指南中,Lemur将安装在/ www目录中,因此您需要先创建该目录:
sudo mkdir /www
cd /www
现在,克隆刚刚创建的目录中的Lemur最新源代码并给自己写入权限( 狐猴用户是在本教程中创建的):
sudo useradd lemur
sudo passwd lemur
sudo mkdir /home/lemur
sudo chown lemur:lemur /home/lemur
sudo git clone https://github.com/Netflix/lemur
sudo chown -R lemur lemur/
另外,创建虚拟环境,激活它并输入狐猴的目录:
su lemur
virtualenv -p python3 lemur
source /www/lemur/bin/activate
cd lemur
激活环境会调整PATH环境变量,因此缺省情况下像pip这样的东西现在会安装到virtualenv中。
从源代码安装狐猴
设置系统后,确保你在virtualenv中运行“make release”命令。
which python
并运行以下命令来安装npm依赖关系以及编译静态资产。
make release
创建狐猴配置
在我们运行Lemur之前,我们必须为它创建一个有效的配置文件。 Lemur命令行界面带有一个简单的命令,可让您快速启动并运行。 以下命令将在“ 〜/ .lemur / lemur.conf.py ”下创建一个默认配置,并且可以通过将config_path参数传递给create_config命令来指定此位置。
lemur create_config
更新狐猴配置
一旦创建完成,您将需要使用有关您的环境的信息来更新配置文件,例如要与哪个数据库进行通话,存储密钥的位置等。
vi ~/.lemur/lemur.conf.py
Postgresql的SQLALCHEMY_DATABASE_URI字符串可以像这样分解:
“postgresql:// userame: password@ <database-fqdn>:<database-port> / <database-name>”
下面给出的屏幕截图显示,在配置文件中填入以下必需的变量:
LEMUR_SECURITY_TEAM_EMAIL
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT
安装Postgres数据库
对于生产,建议使用专用数据库。 对于本指南,我将假设postgres已安装并且与安装Lemur的计算机位于同一台计算机上。
首先,为postgres用户设置一个密码。 对于本指南,我们将使用狐猴作为示例,但您应该使用由狐猴生成的数据库密码:
sudo -u postgres -i
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';
一旦成功,输入CTRL-D退出Postgres shell。
接下来,我们将创建我们的新数据库:
sudo -u postgres createdb lemur
初始化狐猴证书管理器
狐猴提供了一个有用的命令,将为您初始化您的数据库。 它会创建一个默认用户( 狐猴 ),供狐猴用来帮助关联当前没有拥有者的证书。 当Lemur从第三方来源发现证书时,这是最常见的情况。 这也是可以用来管理狐猴的默认用户。
除了创建新用户外,Lemur还创建了一些默认电子邮件通知。 这些通知基于几个配置选项,如LEMUR_SECURITY_TEAM_EMAIL 。 他们基本上保证,狐猴内的每个证书都会向安全团队发送一份过期通知。
记下第一次登录Lemur UI时使用的密码。
cd /www/lemur/lemur
lemur init
以下快照显示了“lemur init”命令的输出。
为Lemur配置NGINX Web服务器
默认情况下,Lemur在端口8000上运行。即使你改变了这个,在正常情况下你也不能绑定到端口80.为了解决这个问题(并且为了避免让狐猴作为特权用户运行,你不应该),我们需要设置一个简单的Web代理。 您可以使用许多不同的Web服务器,我们喜欢并推荐Nginx。
在配置文件“ / etc / nginx / sites-available / default ”中添加以下行。
location /api {
proxy_pass http://127.0.0.1:8000;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
root /www/lemur/lemur/static/dist;
include mime.types;
index index.html;
}
进行这些更改后,重新启动Nginx服务以应用它们:
sudo service nginx restart
启动Web服务
狐猴提供了一个内置的web服务器(由gunicorn和eventlet驱动),可以让你快速离开地面。 要启动Web服务器,只需使用“ lemur start ”。
您可以使用Initializing Lemur期间创建的默认用户或您可能创建的任何其他用户登录。您现在应该可以通过访问http://192.168.10.51:8000/来测试Web服务。 (192.168.10.51是Lemur机器的IP地址)。
上面显示了狐猴的仪表板。 它用于使用自签名或根证书颁发机构创建证书。
结论
在本教程中,Lemur证书管理器安装在最新的Ubuntu LTS版本上。 狐猴的目的是创建和管理证书。 它还支持用户的不同角色。