使用TLS安全的訪問Minio服務

2021-09-25 15:04:43 字數 2716 閱讀 7165

本文,我們講介紹如何在linux和windows上配置minio服務使用tls。

如果你已經有私鑰和公鑰證書,你需要將它們拷貝到minio的config/certs資料夾,分別取名為private.keypublic.crt

如果這個證書是被證書機構簽發的,public.crt應該是伺服器的證書,任何中間體的證書以及ca的根證書的級聯。

linux環境下生成證書

minio在linux只支援使用pem格式的key/certificate。

使用 let's encrypt

使用 generate_cert.go (self-signed certificate)

generate_cert.go已經提供了帶有dns和ip條目的san證書:

copygo run generate_cert.go -ca --host "10.10.0.3"
使用 openssl:

生成私鑰:

copyopenssl genrsa -out private.key 2048
生成自簽名證書:

copyopenssl req -new -x509 -days 3650 -key private.key -out public.crt -subj "/c=us/st=state/l=location/o=organization/cn=domain"
windows環境下生成證書

minio在windows上只支援pem格式的key/certificate,目前不支援pfx證書。

安裝 gnutls

確保將解壓後的binary路徑加入到系統路徑中。

copysetx path "%path%;c:\users\myuser\downloads\gnutls-3.4.9-w64\bin"
你可能需要重啟powershell控制台來使其生效。

生成private.key

執行下面的命令來生成private.key

copycerttool.exe --generate-privkey --outfile private.key
生成public.crt

建立檔案cert.cnf,填寫必要資訊來生成證書。

copy# x.509 certificate options

## dn options

# the organization of the subject.

organization = "example inc."

# the organizational unit of the subject.

#unit = "sleeping dept."

# the state of the certificate owner.

state = "example"

# the country of the subject. two letter code.

country = "ex"

# the common name of the certificate owner.

cn = "sally certowner"

# in how many days, counting from today, this certificate will expire.

expiration_days = 365

# x.509 v3 extensions

# dns name(s) of the server

dns_name = "localhost"

# (optional) server ip address

ip_address = "127.0.0.1"

# whether this certificate will be used for a tls server

tls_www_server

# whether this certificate will be used to encrypt data (needed

# in tls rsa ciphersuites). note that it is preferred to use different

# keys for encryption and signing.

encryption_key

生成公鑰證書

copycerttool.exe --generate-self-signed --load-privkey private.key --template cert.cnf --outfile public.crt
minio可以配置成連線其它服務,不管是minio節點還是像nats、redis這些。如果這些服務用的不是在已知證書機構註冊的證書,你可以讓minio服務信任這些ca,怎麼做呢,將這些證書放到minio配置路徑下(~/.minio/certs/cas/linux 或者c:\users\\.minio\certs\caswindows).

使用TLS安全的訪問Minio服務

本文,我們講介紹如何在linux和windows上配置minio服務使用tls。如果你已經有私鑰和公鑰證書,你需要將它們拷貝到minio的config certs資料夾,分別取名為private.key和public.crt。如果這個證書是被證書機構簽發的,public.crt應該是伺服器的證書,任...

動態tls的使用

多執行緒的時候最好不要使用全域性和靜態變數,因為如果乙個執行緒改變了全域性變數的值,另乙個執行緒在不知情的情況下有可能引用這個變數導致不可預料的錯誤 我們先舉個例子 假設兩個執行緒各自從0 9999計數 如果我們這樣寫 main.cpp include include dword winapi wo...

執行緒區域性儲存(TLS)的使用

將執行緒的私有資料 區域性儲存的資料 共享,以供本程序中的其它執行緒使用。l 適用情形 執行緒區域性儲存適用於多執行緒共享資料,而又不需要同步的情形。執行緒同步的開支比較大。l 原理 在每個執行緒中有乙個儲存區域,該儲存區域有64個slot 資料槽 可以通過該slot的索引值 乙個dword數值 獲...