大佬整理的Shell個(gè)人感覺(jué)用著有問(wèn)題,改進(jìn)了一下。
客戶(hù)端用的key保存到~/.docker/tls-client-certs.tar.gz
希望大家用的開(kāi)心
#!/bin/bash # # Created by L.STONE# Mod By Ryan.L # ------------------------------------------------------------- # 自動(dòng)創(chuàng)建 Docker TLS 證書(shū) # ------------------------------------------------------------- # 以下是配置信息 # Config start IP="8.8.8.8" PASSWORD="123456" COUNTRY="CN" STATE="Beijing" CITY="" ORGANIZATION="iPlayLoli" ORGANIZATIONAL_UNIT="Dev" COMMON_NAME="$IP" EMAIL="github-benzBrake@woai.ru" # Config end # 工作目錄 mkdir -p /etc/docker ~/.docker cd ~/.docker # 停止 docker service docker stop # 生成 CA 密鑰 if [[ ! -f ca-key.pem ]]; then echo " - 生成 CA 密鑰" openssl genrsa -aes256 -passout "pass:$PASSWORD" -out "ca-key.pem" 4096 fi # 生成 CA if [[ ! -f ca.pem ]]; then echo " - 生成 CA" openssl req -new -x509 -days 365 -key "ca-key.pem" -sha256 -out "ca.pem" -passin "pass:$PASSWORD" -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$COMMON_NAME/emailAddress=$EMAIL" fi # 生成服務(wù)器密鑰 & 服務(wù)器證書(shū) if [[ ! -f server-key.pem ]]; then echo " - 生成服務(wù)器密鑰" openssl genrsa -out "server-key.pem" 4096 fi if [[ ! -f server.csr ]]; then openssl req -subj "/CN=$COMMON_NAME" -sha256 -new -key "server-key.pem" -out server.csr fi if [[ ! -f server-cert.pem ]]; then echo " - 生成服務(wù)器證書(shū)" echo "subjectAltName = IP:$IP,IP:127.0.0.1" >> extfile.cnf echo "extendedKeyUsage = serverAuth" >> extfile.cnf openssl x509 -req -days 365 -sha256 -in server.csr -passin "pass:$PASSWORD" -CA "ca.pem" -CAkey "ca-key.pem" -CAcreateserial -out "server-cert.pem" -extfile extfile.cnf fi rm -f extfile.cnf # 生成客戶(hù)端證書(shū) if [[ ! -f key.pem ]]; then openssl genrsa -out "key.pem" 4096 fi if [[ ! -f cert.pem ]]; then openssl req -subj "/CN=client" -new -key "key.pem" -out client.csr echo extendedKeyUsage = clientAuth >> extfile.cnf openssl x509 -req -days 365 -sha256 -in client.csr -passin "pass:$PASSWORD" -CA "ca.pem" -CAkey "ca-key.pem" -CAcreateserial -out "cert.pem" -extfile extfile.cnf fi chmod -v 0400 "ca-key.pem" "key.pem" "server-key.pem" chmod -v 0444 "ca.pem" "server-cert.pem" "cert.pem" # 打包客戶(hù)端證書(shū) echo " - 打包客戶(hù)端證書(shū)為 tls-client-certs.tar.gz" mkdir -p "tls-client-certs" cp -f "ca.pem" "cert.pem" "key.pem" "tls-client-certs/" cd "tls-client-certs" tar zcf "tls-client-certs.tar.gz" * mv "tls-client-certs.tar.gz" ../ cd .. rm -rf "tls-client-certs" # 拷貝服務(wù)端證書(shū) mkdir -p /etc/docker/certs.d cp -f "ca.pem" "server-cert.pem" "server-key.pem" /etc/docker/certs.d/ echo " - 修改 /etc/docker/daemon.json 文件" if [[ -f /etc/docker/daemon.json ]]; then grep "/etc/docker/certs.d/server-key.pem" /etc/docker/daemon.json > /dev/null if [[ ! $? -eq 0 ]]; then cat >/etc/docker/daemon.json< /etc/docker/daemon.json< /etc/systemd/system/docker.service.d/override.conf<
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/27735.html
摘要:上一篇文章搭建了一個(gè)具有基礎(chǔ)功能的私有倉(cāng)庫(kù),這次來(lái)搭建一個(gè)擁有權(quán)限認(rèn)證的私有倉(cāng)庫(kù)。移動(dòng)證書(shū)到目錄。身份驗(yàn)證為用戶(hù)創(chuàng)建一個(gè)帶有一個(gè)條目的密碼文件,密碼為創(chuàng)建倉(cāng)庫(kù)啟動(dòng)注冊(cè)表,指示它使用證書(shū)。注冊(cè)表在端口默認(rèn)的端口上運(yùn)行。 上一篇文章搭建了一個(gè)具有基礎(chǔ)功能的私有倉(cāng)庫(kù),這次來(lái)搭建一個(gè)擁有權(quán)限認(rèn)證、TLS 的私有倉(cāng)庫(kù)。 環(huán)境準(zhǔn)備 系統(tǒng):Ubuntu 17.04 x64 IP:198.13.48...
摘要:如果存在文件請(qǐng)優(yōu)先修改此文件,具體原因請(qǐng)百度配置重啟到此為止,我們就已經(jīng)成功的完成了的配置。 本文首發(fā)地址:https://liluyang.me 本文將以本站 http://liluyang.me 升級(jí)到 https://liluyang.me 的過(guò)程來(lái)分享一下 https 的原理,http 和 https 的區(qū)別,以及如何將網(wǎng)站從 http 升級(jí)到 https。 引言 為什么要用...
閱讀 1352·2021-09-22 15:09
閱讀 2673·2021-08-20 09:38
閱讀 2412·2021-08-03 14:03
閱讀 876·2019-08-30 15:55
閱讀 3381·2019-08-30 12:59
閱讀 3558·2019-08-26 13:48
閱讀 1897·2019-08-26 11:40
閱讀 676·2019-08-26 10:30