🗝️ نحوه ایجاد CA و ایجاد گواهینامه ها و کلیدهای SSL / TLS – Squad Security Security Squad

این راهنما روند ایجاد کلیدها و گواهینامه های CA و استفاده از آنها برای ایجاد گواهینامه ها و کلیدهای SSL / TLS را با استفاده از ابزارهای SSL مانند Opensl و cfssl توضیح می دهد.

شرایط استفاده شده در این مقاله:

  1. PKI – زیرساخت کلیدهای عمومی
  2. CA – مرجع صدور گواهینامه
  3. CSR – درخواست امضای گواهینامه
  4. SSL – لایه سوکت ایمن
  5. TLS – Security Layer Security

گردش کار ایجاد گواهی

مراحل زیر ایجاد گواهینامه های CA ، SSL / TLS.

کلید CA و ایجاد گواهی

  • یک فایل کلید خصوصی CA را با استفاده از ابزار ایجاد کنید litas (OpenSSL ، cfssl ، و غیره)
  • با استفاده از کلید خصوصی CA ، یک گواهی ریشه CA ایجاد کنید.

فرآیند ایجاد گواهی سرور

  • کلید خصوصی سرور با استفاده از ابزار (OpenSSL ، cfssl ، و غیره)
  • CSR را با استفاده از کلید خصوصی سرور ایجاد کنید.
  • با استفاده از کلید CA ، گواهی CA و گواهی CSR سرور یک گواهی سرور ایجاد کنید.

در این راهنما مراحل لازم برای ایجاد گواهی های CA ، SSL / TLS را با استفاده از ابزارهای زیر توضیح خواهیم داد:

  1. o penssl
  2. cfssl

این راهنما به ایجاد گواهینامه های CA ، SSL / TLS شما اختصاص داده شده است.

در نظر گرفته شده است که در شبکه داخلی تهیه شده یا مورد استفاده قرار گیرد که هرکسی بتواند گواهینامه CA ریشه ای را که ارائه کرده اید نصب کند.

برای استفاده عمومی (اینترنت) خدمات ، باید توجه داشته باشید كه از هرگونه خدمات CA شخص ثالث موجود ، مانند Digicert و غیره استفاده كنید.

تولید گواهی با استفاده از CFSSL و CFSSLJSON

CFSSL و CFSSLJSON ابزار PKI از Cloudflare هستند. زندگی شما را آسانتر می کند برای ایجاد یک CSR و کلید گواهی.

مجموعه CFSSL و CFSSLJSON در لینوکس

1. اجرایی را بارگیری کنید و آنها را در / usr / local / bin ذخیره کنید

 curl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 
       -o / usr / local / bin / cfssl
curl https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 
       -o / usr / local / bin / cfssljson
curl https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 
       -o / usr / local / bin / cfssl-certinfo 

2. برای اجرای پرونده های اجرایی بارگیری شده ، حقوق اجرایی را اضافه کنید.

chmod + x / usr / local / bin / [19659040] cfssl

/ usr / local / bin / cfssljson

19659035] / usr / local / bin / cfssl certinfo

3. نصب را با اجرای دستور cfssl تأیید کنید:

یک گواهی CA و کلید آن ایجاد کنید

مرحله 1: یک پوشه به نام cfssl ایجاد کنید تا همه گواهی ها را ذخیره کنید و به پوشه بروید.

 mkdir cfssl
cd cfssl 

مرحله 2: پرونده ca-csr.json را با اطلاعات لازم ایجاد کنید.

 cat> ca-csr.json << EOF
{
"CN": "Demo CA" ،
"کلید": {
"algo": "rsa" ،
"اندازه": 2048
،
"نام": [
{
"C": "US",
"L": "California",
"ST": "Milpitas"
}
]
}
EOF 

می توانید مقادیر پشتیبانی شده را برای csr و پیکربندی با استفاده از دستورات زیر بررسی کنید:

 cfssl پیکربندی پیش فرض چاپی
cfssl print-defaults csr 

مرحله 2. با استفاده از پرونده ca-csr.json یک کلید CA و پرونده گواهینامه (ca-key.pem و ca.pem) ایجاد کنید.

 cfssl gencert -initca ca-csr.json | cfssljson -bare ca - 

مرحله 3: ca-config.json را با اطلاعات امضا و مشخصات ایجاد کنید.

این به منظور ایجاد گواهینامه های سرور یا مشتری استفاده می شود که می تواند برای پیکربندی احراز هویت SSL / TSL استفاده شود. [19659075] cat> ca-config.json << EOF
{
"امضای": {
"پیش فرض": {
"منقضی": "8760h"
،
"پروفایل":
"وب سرور": {
"استفاده": [
“signing”,
“key encipherment”,
“server auth”,
“client auth”
]
"منقضی": "8760h"
}
}
}
}
EOF

تولید گواهینامه های SSL / TLS

مرحله 1: سرور-csr.json را با داده های سرور خود ایجاد کنید.

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

19

19 ] 20

cat > server csr . json << EOF {

"CN" : "scrcriptunch" ،

"host" (]: [194590005]] ] "scriptcrunch.com" ،

"www.scriptcrunch.com"

] ،

"key" : {

algo : rsa ،

"اندازه" : 2048

} ،

"names" : [194590005]

] {

"C" : "US" ،

"L" : "CA" ،

"ST" : "سان فرانسیسکو"

} ]

}

EOF

توجه: ورود میزبان ها در json باید حاوی DNS یا آدرس IP سرور عمومی / خصوصی ، نام میزبان ، DNS محلی و غیره باشد. بسته به رابط کاربری که می خواهید درخواست تأیید اعتبار دریافت کنید. Gp. به عنوان مثال ، شما ممکن است سروری با تأیید اعتبار داشته باشید TLS از طریق شبکه های عمومی و یک شبکه خصوصی در سازمان.

مرحله 2: اکنون گواهینامه های SSL سرور را با استفاده از کلیدهای CA ، گواهی نامه ها و csr های سرور ایجاد کنید.

این کار باعث ایجاد کلید-server.pem (کلید خصوصی) و پرونده های سرور می شود. pem (گواهی نامه ها).

 cfssl gencert 
-ca = ca.pem 
-ca-key = ca-key.pem 
-config = ca-config.json 
-فروش = سرورهای وب 
server-csr.json | سرور cfssljson

تولید گواهینامه ها با استفاده از OpenSSL

ابزار Openssl به طور پیش فرض در کلیه سیستم های مبتنی بر لینوکس و یونیکس وجود دارد.

یک گواهی CA و کلید آن ایجاد کنید

مرحله 1: یک دایرکتوری Opensl و یک سی دی برای آن ایجاد کنید. [19659066] mkdir openssl && cd opensl

مرحله 2: پرونده کلید خصوصی CA را ایجاد کنید.

 opensl genrsa -out ca.key 2048 

مرحله 3: پرونده گواهی CA x509 را با استفاده از کلید CA تولید کنید.

می توانید مدت اعتبار گواهینامه را در روزها تعیین کنید.

در اینجا ما 1825 روز را مشخص کرده ایم.

تیم بعدی جزئیات گواهینامه مانند نام تیم ، محل ، کشور و غیره را درخواست می کند.

 opensl  req   ] -  x509   -  new   -  گره ها    
  -  key  ca  key [19659031] -  sha256    
  -  days   1825   -  out  ca  crt [1965919] می توانید این اطلاعات را همانطور که در شکل زیر مشاهده شده است به فرمان منتقل کنید. 

opensl req - x509 - new - گره ها

] - key ca . کلید - subj [1 9659109] "/ CN = scriptcrunch / C = US / L = CALIFORNIA"

- روز 1825 - ] crt

تولید گواهینامه های SSL / TLS

مرحله 1. کلید خصوصی سرور

 را باز کنید  genrsa   -  out  server [1965901040]. key   2048 

مرحله 2. یک فایل پیکربندی به نام csr.conf ایجاد کنید تا درخواست امضای گواهینامه (CSR) را به شرح زیر نشان دهید.

مقادیر را متناسب با نیاز خود جایگزین کنید.

 cat [19659031]>   csr .  conf   <<  EOF 

 [  req  ] 

 default_bits   =   2048 [196592سریع  =   no 

 default_md [19659031] =   sha256 

 req_extensions   =   req_ext 

 featured_name   =   dn 

 dn [1965941] =   US 

 ST   =   California 

 L 

= San ] Fransisco O = Scriptcrunch 19659031] = Scriptcrunch Dev CN = scriptcriptunch . com [ req _ ext ] subjectAltName = @ alt _ نام [ alt _ names ] DNS . 1

= scriptrunch

DNS . ] 2 = scriptcrunch . com

IP . 1

= 10.34.12.5

IP ] 2 = 10.34.12.5

[ v3 _ ext ]

AuthorityKeyIdentifier = keyid [196591032]، 19 ] صادر کننده : همیشه

basicConstraints = CA : FALSE

keyUsage = ، 19659102]

تمدیدKeyUsage = سرورAuth ، clientAuth

موضوعAltName = @ ] al_names

EOF [19654444] EOF [19444444ازکجامیخواهیدSSLاستفادهکنید[19659347] همچنین اگر کلاینت ها از این آدرس IP برای اتصال به سرور از طریق SSL استفاده می کنند ، تمام آدرسهای IP مرتبط با سرور را اضافه کنید.

مرحله 3: CSR را با استفاده از کلید خصوصی و پرونده پیکربندی تولید کنید.

 opensl [19659032] req   -  new   -  key  server .  key   -  out  server  csr   -  پیکربندی  csr .  conf 

مرحله 4. مرحله 4. یک گواهی سرور SSL با استفاده از ca.key ، ca.crt و server.csr

ایجاد کنید. opensl x509 req در server . csr CA ca 19659032] crt CAkey ca . [19659040] key

CAcreateserial out server . crt ] [19659128] 10000

extensions v3_ext extifile csr ] ]