给在 GitLab 中放置的网站启用 HTTPS

给在 GitLab 中放置的网站启用 HTTPS_第1张图片
logo.png
  1. 前言
  2. 使用 Let’s Encrypt
  3. 使用 云盾证书服务

1. 前言

本文章需要读者知道如何在 GitLab 中搭建网站。

2. 使用 Let’s Encrypt 

2.1 使用 DNS 方法(推荐)

首先安装 certbot:

# pacman -S certbot

然后:

# certbot -d 域名 --manual --preferred-challenges dns certonly

然后会看到下面这样的东西:

Please deploy a DNS TXT record under the name
_acme-challenge.域名 with the following value:

一长串英文和数字的文本

Once this is deployed,
Press ENTER to continue

此时不要按回车键!
  去打开 DNS 解析服务,添加一个如下面的解析:

添加 TXT 解析

  过一点时间,等生效,然后就可以回到终端按回车了。
  如果顺利,会看到下面这样的东西:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/域名/fullchain.pem. Your cert
will expire on 2017-03-18. To obtain a new or tweaked version of
this certificate in the future, simply run certbot again. To
non-interactively renew all of your certificates, run "certbot
renew"
- If you like Certbot, please consider supporting our work by:

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

此时证书已经生成完成了。
  接下来就是应用证书了,在 GitLab 上的项目 的 Add Domain 页面,分别填上 域名和/etc/letsencrypt/live/域名/fullchain.pem/etc/letsencrypt/live/域名/privkey.pem 里面的内容,再点击 "Create New Domain" 就行了。

2.2 使用文件方法

首先安装 certbot:

# pacman -S certbot

然后:

# certbot certonly -a manual -d 域名

然后看到有类似这样的东西:

Make sure your web server displays the following content at
http://域名/.well-known/acme-challenge/一长串东西 before continuing:

nUwHqxgYTBM33SbD8Rbq6I4kRAM__ihN1AamLiliSRU.00rwBJnorqAUOqwnjUha-sybA9YQgo2YTMIr_q2A3j0

If you don't have HTTP server configured, you can run the following
command on the target server (as root):

mkdir -p /tmp/certbot/public_html/.well-known/acme-challenge
cd /tmp/certbot/public_html
printf "%s" 这里有一长串东西 > .well-known/acme-challenge/这里也有一长串东西

# run only once per server:

$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
"import BaseHTTPServer, SimpleHTTPServer; \
s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()" 

Press ENTER to continue

看到上面这些东西不要立刻按回车键,因为还没把用来验证的东西上传到 GitLab。
  首先创建个两个文件夹在:

mkdir -p ~/放着网页的目录/.well-known/acme-challenge
cd ~/放着网页的目录
printf "%s" 这里有一长串东西 > .well-known/acme-challenge/这里也有一长串东西

然后把刚加入的东西推到 GitLab 上,过段时间之后去之前出现的http://域名/.well-known/acme-challenge/一长串东西页面。此时看到页面上应该是一长串字符,如果不是,那就看下是不是部署出错了。
  到现在可以回到终端,按下回车键了。
  如果顺利,会看到下面这样的东西:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/域名/fullchain.pem. Your cert will
expire on 2017-03-09. To obtain a new or tweaked version of this

certificate in the future, simply run certbot again. To
non-interactively renew all of your certificates, run "certbot
renew"
- If you like Certbot, please consider supporting our work by:

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

此时证书已经生成完成了。
  接下来就是应用证书了,在 GitLab 上的项目 的 Add Domain 页面,分别填上 域名和/etc/letsencrypt/live/域名/fullchain.pem/etc/letsencrypt/live/域名/privkey.pem 里面的内容,再点击 "Create New Domain" 就行了。

3. 使用 云盾证书服务 

进入 云盾证书服务 的购买页面,选择需要的版本(本人穷,未对收费版进行测试)进行购买。
  然后进入 证书服务控制台 ,选择补全,填上域名,信息。如果是用阿里的解析,推荐用 DNS 并勾选,完成后就等签发了。选择其他的也可以,这里就不说了。


参考来源

Tutorial: Securing your GitLab Pages with TLS and Let's Encrypt | GitLab 
How to use Let's Encrypt DNS challenge validation? - Server Fault 


本文其他链接:《在 GitLab 中放置网页并启用 HTTPS》——冻皮博客 (未完成)


知识共享许可协议

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议  进行许可。


你是否看到本文不少链接后面有个方框?不要方,这是因为你没安装 Font Awesome  字体,安装后这个问题就会消失啦~

你可能感兴趣的:(给在 GitLab 中放置的网站启用 HTTPS)