kafka SSL證書生成及配置

2021-08-06 05:35:14 字數 3304 閱讀 8804

apache kafka可以使用ssl加密連線,還可以限制客戶端訪問,

給客戶端發行證書,只允許持有證書的客戶端訪問。

下面使用jdk的keytool工具來生成證書,配置kafka。

為了便於演示,ca和伺服器證書使用相同的密碼,如下:

kspass=***x

客戶端證書密碼如下:

client_pass=yyyy

# 生成

keytool -genkeypair -keystore mycastore.jks -storepass $ -alias myca -validity 365 -dname cn=ca,c=cn -ext bc:c

#(注意有效天數。預設是90天。)

# 匯出

keytool -exportcert -keystore mycastore.jks -storepass $ -alias myca -rfc -file myca.cer

# 檢視

keytool -list -keystore mycastore.jks -storepass $

keytool -printcert -file myca.cer

# 生成

keytool -genkeypair -keystore server.keystore.jks -storepass $ -alias server -keypass $ -validity 365 -dname cn=127.0.0.1,c=cn

# 生成證書請求

keytool -certreq -keystore server.keystore.jks -storepass $ -alias server -keypass $ -file server.csr

# ca簽名

keytool -gencert -keystore mycastore.jks -storepass $ -alias myca -keypass $ -validity 365 -infile server.csr -outfile server.cer

# 檢視

keytool -printcert -file server.cer

# 匯入ca證書,生成truststore

keytool -importcert -keystore server.truststore.jks -storepass $ -alias myca -keypass $ -file myca.cer

# 匯入ca證書到keystore

keytool -importcert -keystore server.keystore.jks -storepass $ -alias myca -keypass $ -file myca.cer

# 匯入server證書到keystore

keytool -importcert -keystore server.keystore.jks -storepass $ -alias server -keypass $ -file server.cer

# 生成

keytool -genkeypair -keystore client1.keystore.jks -storepass $ -alias client1 -keypass $ -validity 365 -dname cn=client1,c=cn

# 生成證書請求

keytool -certreq -keystore client1.keystore.jks -storepass $ -alias client1 -keypass $ -file client1.csr

# ca簽名

keytool -gencert -keystore mycastore.jks -storepass $ -alias myca -keypass $ -validity 365 -infile client1.csr -outfile client1.cer

# 檢視

keytool -printcert -file client1.cer

# 匯入ca證書,生成truststore

keytool -importcert -keystore client1.truststore.jks -storepass $ -alias myca -keypass $ -file myca.cer

# 匯入ca證書到keystore

keytool -importcert -keystore client1.keystore.jks -storepass $ -alias myca -keypass $ -file myca.cer

# 匯入server證書到keystore

keytool -importcert -keystore client1.keystore.jks -storepass $ -alias client1 -keypass $ -file client1.cer

(內網使用9092埠明文,外網使用9093埠ssl)

ssl.keystore

.location=server.keystore

.jks

ssl.keystore

.password=***

ssl.key

.password=***

ssl.truststore

.location=server.truststore

.jks

ssl.truststore

.password=***

ssl.client

.auth=required

listeners=plaintext:

.0.0:9092,ssl://:9093

advertised.listeners=plaintext:

.1.1:9092,ssl://x

.x.x

.x:9093

bootstrap.servers=x

.x.x

.x:9093

ssl.protocol=ssl

security.protocol=ssl

ssl.keystore

.location=client1.keystore

.jks

ssl.keystore

.password=***

ssl.key

.password=***

ssl.truststore

.location=client1.truststore

.jks

ssl.truststore

.password=***

TLS原理及證書生成

1 生成rsa金鑰 openssl genrsa des3 out mykey.pem 2048或者 openssl genrsa out mykey.pem 2048建議用2048位金鑰,少於此可能會不安全或很快將不安全。2 生成證書請求 openssl req new key mykey.pem...

證書生成 通配證書生成的方法

今天幫乙個朋友搞了點事情,我提供了乙個可完全隱藏wkwebview並且能載入web的sdk提供給對方使用,為了防止sdk在多個專案的復用,限制了這個sdk只能在具體的某個bundle id下執行,正常情況下這樣是沒有問題的。通過換bundle id進行真機測試的方案很合理,但是針對現在這種需要特定的...

ssl證書生成

openssl req new x509 days 3650 nodes out opt ssl certs postfix.pem keyout opt ssl private postfix.pem第乙個是證書,第二個是key 私鑰 可以應用在很多程式上。下面舉兩個例子 nginx postfi...