راه اندازی Offline Root CA به همراه یک Subordinate Issuing CA در سرور 2016

1 1,690
Telegram_GEEKBOY

How to Install an Offline Standalone Root CA

چند وقت پیش سه مقاله در خصوص طراحی و معماری زیرساخت کلید عمومی یا PKI در سایت قرار دادیم، در این مقالات مفاهیم کلی طراحی و معماری زیرساخت کلید عمومی بررسی و تحلیل شده بود اما به هیچ عنوان بحث فنی انجام نشده بود، در این مقاله قصد داریم تا یکی از طراحی های مد نظر در آن سری از مقالات را که به عنوان یک طراحی ایده آل مطرح می شود را با یکدیگر بصورت کاملا عملی انجام دهیم. تا اینجای کار و با مطالعه سری مقاله های قبلی متوجه شدیم که یک طراحی مناسب زیرساخت کلید عمومی یا PKI قطعا باید متشکل از یک Offline Root CA یا مرکز صدور گواهینامه دیجیتال آفلاین و چندین Subordinate CA یا مراکز صدور گواهینامه دیجیتال موجود در ساختار اکتیودایرکتوری باشد. خوب با توجه به اینکه ساختار دو لایه ای و ساختار سه لایه ای از نظر انجام تنظیمات چندان تفاوتی با یکدیگر ندارند در این مقاله یک ساختار دو لایه ای را که در آن یک Offline Root CA و یک Subordinate CA وجود دارد را با همدیگر پیاده سازی می کنیم.

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

مقاله: طراحی و معماری زیرساخت کلید عمومی یا PKI قسمت اول
مقاله: طراحی و معماری زیرساخت کلید عمومی یا PKI قسمت دوم
مقاله: طراحی و معماری زیرساخت کلید عمومی یا PKI قسمت سوم

طرح سناریو

همانطور که در شکل زیر مشاهده می کنید ما یک سرور که عضو هیچ Domain ای نمی باشد و در Workgroup می باشد را به نام RootCA ایجاد خواهیم کرد که بر روی آن ویندوز سرور 2016 نسخه TP4 نصب شده است (تمام مراحل در سرور 2008 به بعد یکی می باشد) و سپس آن را در حالت Offline قرار می دهیم، یعنی ارتباطات شبکه ای آن را قطع می کنیم، توجه کنید که با توجه به مقالات قبلی، شما نبایستی Offline Root CA را به عضویت Domain در بیاورید. سپس یک Enterprise Subordinate CA با نام SubCA در ویندوز سرور ایجاد می کنیم که در اکتیودایرکتوری و Domain ای به نام Saeed.ws عضویت دارد، توجه کنید که بعد از راه اندازی سرویس این CA فعال نخواهد شد تا گواهینامه اصلی از طریق RootCA برای آن صادر شود. توجه کنید که مهمترین اصلی در راه اندازی چنین سرویسی این است که SubCA بایستی بتواند به لیست CRL و AIA ای که RootCA دارد دسترسی پیدا کند، یا در صورت لزوم دسترسی را به صورت کلی حذف کنیم. این طرح کلی سناریو می باشد که در ادامه آن را انجام خواهیم داد.

راه اندازی Offline Root CA به همراه یک Subordinate Issuing CA در سرور 2016


image

راه اندازی Offline Root CA در ویندوز سرور 2016

خوب همانطور که از نامش هم پیداست این سرور در حالت آفلاین قرار دارد یعنی اصلا به شبکه متصل نمی باشد. برای اینکار کافیست یک ویندوز سرور داشته باشید، در این حالت به Root CA ای که ساخته می شود در اصطلاح Stan Alone نیز گفته می شود زیرا عضو هیچ Domain ای نمی باشد و فقط برای صدور گواهینامه یا Certificate برای Subordinate CA ها استفاده می شود. خوب برای نصب این CA کافیست وارد کنسول Server Manager بشوید و طبق موارد زیر عمل کنید:

1- طبق شکل زیر گزینه Active Directory Certificate Services را انتخاب کنید و سپس Next را کلیک کنید.

راه اندازی Offline Root CA به همراه یک Subordinate Issuing CA در سرور 2016

2- از Role های موجود در شکل زیر صرفا گزینه Certificate Authority را انتخاب کنید، توجه کنید که این CA در حالت Offline قرار دارد بنابراین شما نیازی به این ندارید که حالت Web Enrollment را در آن فعال کنید، به دلیل اینکه قرار نیست کسی از طریق وب به آن متصل شود، بعد از انتخاب Certificate Authority بر روی Next کلیک کنید.

SVR3 (2016TP4)-2015-12-01-14-06-17

SVR3 (2016TP4)-2015-12-01-14-10-02

SVR3 (2016TP4)-2015-12-01-14-31-57

3- مشابه تصویر زیر برای نوع CA یا CA Type گزینه Stand-Alone را انتخاب کنید، البته چاره دیگری هم ندارید زیرا به دلیل عدم عضویت این سرور در Domain شما نمی توانید Enterprise CA در این سرور داشته باشید و بنابراین Stan-Alone را انتخاب کنید و بر روی Next کلیک کنید.

SVR3 (2016TP4)-2015-12-01-14-34-13

4- مشابه تصویر زیر گزینه Root CA را انتخاب کنید، گزینه Subordinate CA را در ادامه همین آموزش توضیح می دهیم، بر روی Next کلیک کنید.

SVR3 (2016TP4)-2015-12-01-14-34-18

5- از شما خواسته می شود که برای این CA یک کلید خصوصی یا Private Key ایجاد شود، به این نکته توجه داشته باشید که تنها CA ای که می تواند برای خودش Certificate و Private Key ایجاد کند فقط و فقط CA ریشه یا Root CA است، در این قسمت گزینه Create a new private key را انتخاب کنید تا CA برای خود یک کلید خصوصی ایجاد کند، توجه داشته باشید که در صورتیکه CA فاقد کلید خصوصی برای خود باشد قادر به ارائه سرویس نخواهد بود ، بر روی Next کلیک کنید.

0Clone of SVR3 (2016TP4)-2015-12-01-15-10-20

6- همانطور که در تصویر پایین مشاهده می کنید در این قسمت از شما در خصوص الگوریتم های مورد استفاده در این ساختار PKI و همچنین CSP سئوال می شود. این موارد برای ایجاد کلید های خصوصی و عموی الزامی است، در قسمت CSP شما روش نگهداری کلید خصوصی را مشخص می کنید، برای مثال اگر می خواهید کلید خصوصی شما قابلیت خروجی گرفتن در یک کارت هوشمند را داشته باشد در این قسمت بایستی CSP متناسب با آن را انتخاب کنید، در قسمت Key Character Length طول کلید ایجاد شده توسط این CA را انتخاب می کنید، در قسمت Hashing Algorithm هم الگوریتم Hashing یا درهم سازی متناسب با ساختار خود را انتخاب می کنید، در اینجا ما نمی خواهیم تغییرات چندانی در ساختار داشته باشیم و بنابراین همه چیز را در حالت پیشفرض باقی گذاشته و بر روی Next کلیک می کنیم.

SVR3 (2016TP4)-2015-12-01-14-35-31

7- در تصویر زیر از شما اسم این CA خواسته می شود که تمامی Certificate هایی که از طریق این CA ساخته می شوند در ساختار سلسله مراتبی که ایجاد می شود حتما این اسم را خواهند دید، توجه کنید که پیشفرض اسم سرور در این قسمت قرار می گیرد اما شما می توانید آن را عوض کنید، من در اینجا همان اسم سرور را انتخاب کرده ام، اما یک نکته را در نظر داشته باشید، همیشه به اسم سرور خود دقت کنید، بعد از اینکه CA شما نصب شود دیگر نمی توانید اسم سرور خود را عوض کنید. بر روی گزینه Next کلیک کنید.

SVR3 (2016TP4)-2015-12-01-14-37-01

8- در ادامه و همانطور که در تصویر زیر مشاهده می کنید شما مدت زمان اعتبار یا Validity Period سرور را مشخص می کنید، هر چند معمولا برای سرورهای ریشه این زمان زیادتر از زمان سرورهای Subordinate در نظر گرفته می شود تا در صورت منقضی شدن سرورهای Subordinate بتوانیم از طریق سرور ریشه آنها را مجددا معتبر کنیم اما در این سناریو با توجه به اینکه در محیط لابراتوار قرار داریم همان 5 سال اعتبار پیشفرض را برای سرور در نظر می گیرم و بر روی Next کلیک می کنیم.

SVR3 (2016TP4)-2015-12-01-14-37-42

9- در تصویر زیر ویزارد از شما محل ذخیره سازی فایل های مورد نیاز برای نصب CA و Log های CA را از شما می خواهد، طبق رویه عمل کنید و بر روی Next کلیک کنید، در نهایت به شما خلاصه ای از تنظیمات و موارد خواسته شده ارائه می شود که با کلیک کردن بر روی گزینه Install سرور CA شما براحتی نصب می شود.

SVR3 (2016TP4)-2015-12-01-14-37-45

SVR3 (2016TP4)-2015-12-01-14-38-09

SVR3 (2016TP4)-2015-12-01-14-38-17

SVR3 (2016TP4)-2015-12-01-14-38-30

10- قدم بعدی این است که نام Domain ای که قرار است به عنوان Subordinate CA ما فعالیت کند را در این Root CA در اصطلاح MAP کنیم، دقت کنید که در اینجا بایستی از ابزار certutil.exe و همچنین از ساختار نامگذاری DN یا Distinguished Name استفاده کنیم، برای انجام اینکار کافیست در CMD ای که بر روی CA ریشه باز می کنید دو دستور زیر را بصورت جداگانه اجرا کنی، بعد از اجرا موفقیت آمیز این دو دستور بایستی یکبار سروریس CA را Stop و Start کنید تا تغییرات اعمال شود  در اینجا نام دامین ما Saeed.ws است که دستورات به شکل زیر خواهند بود.

دستور اول:

certutil.exe –setreg ca\DSConfigDN CN=Configuration,DC=SAEED,DC=WS

دستور دوم:

certutil -setreg ca\DSDomainDN “DC=SAEED,DC=WS”

SVR3 (2016TP4)-2015-12-01-14-53-47

11- تا اینجای مسئله کافیست و Root CA شما به درستی فعالیت می کند، اما در اینجا یک مبحث پیش می آید و آن انتشار CRL و AIA است که شما می توانید دو سناریوی متفاوت را در این قسمت بکار ببرید، اولین سناریو این است که آدرس یک سرور آنلاین در شبکه را به جای آدرس های پیشفرض سرور Root قرار بدهید تا لیست در آنجا منتشر شود که در این حالت سرور شما به نوعی هر چند وقت یکبار بایستی آنلاین شود، سناریوی دوم این است که در سرور Subordinate بررسی CRL ها سرور Root را غیرفعال کنید که در سناریوی ما این موضوع منطفی تر به نظر می رسد.

خوب تا اینجا کار ما یک سرور Root CA بصورت Stan Alone و Offline ایجاد کرده ایم و تنظیمات اولیه آن را برای دامین Saeed.ws نیز انجام داده ایم، حالا قرار است به سراغ نصب و راه اندازی Subordinate CA برویم که بصورت آنلاین است و از این سرور ریشه Certificate دریافت بایستی بکند تا بتواند به کار خود در شبکه ادامه دهد. توجه کنید که سناریو در آموزش بعدی به این شکل است که ما یک سرور Subordinate را نصب می کنید و در حین کار نوع CA را Subordinate در نظر می گیریم و سپس درخواست این CA را بصورت آفلاین با یک فلش مموری به سرور ریشه می فرستیم و گواهینامه دریافت می کنیم.

ادامه مراحل در سرور دوم:

حالا نوبت به راه اندازی Subordinate CA می باشد که در اینجا در نقش Issuing CA نیز فعالیت می کند. سناریو به این شکل است که بر روی سروری که عضوی دامین Saeed.ws است Role مربوط به Active Directory Certificate Services را نصب می کنیم و اینبار به جای انتخاب root CA گزینه subordinate CA را انتخاب می کنیم، در این حالت سرور از ما آدرس Root CA را می خواهد که بتواند برای ادامه فعالیت از آن Certificate بگیرید که در اینجا با توجه به آفلاین بودن Root CA در خواست را بصورت دستی در قالب فایل گرفته و به سرور root انتقال می دهیم و سپس بعد از صادر شدن یا Issue شدن certificate آن را به Subordinate CA منتقل و نصب می کنیم. با ما تا انتهای ماجرا باشید و مراحل را بصورت گام به گام انجام دهید.

Clone of SVR3 (2016TP4)-2015-12-01-15-01-36

1- وارد سرور عضو دامین بشوید و از طریق کنسول Server Manager گزینه Active Directory Certificate Services را انتخاب کنید و Next را بزنید، در اینجا دو گزینه Certificate Authority و Certificate Authority Web Enrollment را انتخاب کنید، برخلاف Root CA این CA بایستی بتواند بصورت آنلاین به کلاینت های شبکه سرویس دهی کند و به همین دلیل سرویس وب آن را نیز راه اندازی می کنیم و بر روی گزینه Next کلیک می کنیم(با این کار سرویس IIS هم نصب می شود)، همانطور که در تصویر زیر مشاهده می کنید:

Clone of SVR3 (2016TP4)-2015-12-01-15-03-11

Clone of SVR3 (2016TP4)-2015-12-01-15-03-31

Clone of SVR3 (2016TP4)-2015-12-01-15-04-05

Clone of SVR3 (2016TP4)-2015-12-01-15-07-08

2-در تصویر زیر شما بایستی نوع CA را انتخاب کنید که آیا یک سرور Stand Alone است یا سرور Enterprise، با توجه به اینکه ما می خواهیم از این سرور در نقش صادر کننده خودکار یا Issuing CA در شبکه استفاده کنیم و قابلیت Auto Enrollment در ساختار Enterprise CA وجود دارد این گزینه را انتخاب می کنیم، دقت کنید که گزینه Enterprise صرفا زمانی فعال است که شما در عضویت یک دامین قرار داشته باشید که در اینجا ما یک دامین به نام Saeed.ws داریم که سرور فعلی ما در عضویت این دامین است. بعد از انتخاب Enterprise بر روی Next کلیک می کنیم.

Clone of SVR3 (2016TP4)-2015-12-01-15-15-26

3- در ادامه و در تصویر زیر شما نوع CA از نظر قرار گرفتن در ساختار سلسله مراتبی را مشاهده می کنید، در اینجا ما می خواهیم زیرمجموعه یک CA دیگر شویم که Root CA ما می باشد، بنابراین در این قسمت گزینه Subordinate CA را انتخاب می کنیم، اگر به خاطر داشته باشید در بالا (سرور اول) به دلیل ریشه بودن CA گزینه Root را انتخاب کردیم، بعد از انتخاب Subordinate بر روی Next کلیک کنید.

Clone of SVR3 (2016TP4)-2015-12-01-15-15-31

4- در ادامه تصویر زیر ویزارد از شما می خواهد که برای این سرور یک کلیک خصوصی یا Private Key ایجاد کند، دقت کنید که در این ویزارد بصورت خودکار یک Private Key ایجاد می شود اما این Private Key بی ارزش است و فقط برای انجام فرآیند نصب استفاده می شود، بعد از اینکه شما از سرور Root CA یک Certificate شامل کلید خصوصی و کلید عمومی برای این سرور دریافت کردید و آن را نصب کردید این Private Key صادر شده دیگر بی ارزش می شود، فعلا برای اینکه فرآیند نصب به درستی انجام شود گزینه Create a new private key را انتخاب کنید و بر روی Next کلیک کنید.

Clone of SVR3 (2016TP4)-2015-12-01-15-17-38

5- در ادامه از شما در خصوص الگوریتم های رمزنگاری مورد استفاده در این ساختار سئوال می شود که همانطور که اعلام کردیم همه اینها را بصورت پیشفرض فعلا در نظر بگیرید، در این حالت CSP خود را بر روی Microsoft Software Key Storage Provider و الگوریتم Hashing خود را بر روی SHA1 و طول کلید را همان 2048 بیت در نظر بگیرید و بر روی Next کلیک کنید.

Clone of SVR3 (2016TP4)-2015-12-01-15-17-42

6- در قسمت بعدی از شما در خصوص نام CA سئوال می شود که در اینجا با توجه به اینکه شما در عضویت یک دامین هستید، هر نامی که انتخاب کنید دارای پسوند دامین شما خواهد بود. ما در اینجا نام سرور CA را SUB-CA انتخاب می کنیم و با توجه به همین اسم ساختار Distinguished Name ساخته شده را می توانید در ادامه مشاهده کنید. تغییرات چندانی در این قسمت نیاز نیست انجام بدهید، بر روی Next کلیک کنید تا به مرحله بعدی بروید.

Clone of SVR3 (2016TP4)-2015-12-01-15-20-23

7- این قسمت بسیار مهم است، در اینجاست که شما بایستی درخواست دریافت گواهینامه یا Certificate خود را به سمت Root CA بفرستید تا تاییدیه و Certificate دریافت کنید، گزینه اول در خصوص معرفی یک Root CA آنلاین و در حال کار است، چیزی که ما در این سناریو نداریم، اما در این حالت ما گزینه دوم را انتخاب می کنیم، با انتخاب این گزینه درخواستی از طرف این CA بصورت یک فایل در اختیار شما قرار می گیرد تا آن را بصورت دستی برای Root CA برده و از طرف آن Certificate صادر کنیم، گزینه دوم را انتخاب کنید و محل ذخیره سازی فایل را هم فراموش نکنید، بر روی Next کلیک کنید.

Clone of SVR3 (2016TP4)-2015-12-01-15-22-23

8- در تصویر پایین نیز همانطور که مشاهده می کنید و در آموزش قبلی نیز عنوان کردیم محل قرارگیری فایل های تنظیمات و لاگ های سرور CA مشخص شده است که معمولا ما تنظیمات خاصی در این قسمت نداریم و بر روی Next کلیک می کنیم.

Clone of SVR3 (2016TP4)-2015-12-01-15-22-29

9- در انتهای فرآیند نصب ویزارد خلاصه ای از تنظیمات انجام شده را به شما نمایش می دهد، دقت کنید که در اینجا به شما اعلام شده است که حتی بعد از اینکه شما گزینه Configure (در نسخه های قدیمی سرور Close بود) را نیز انتخاب کنید CA بصورت کامل نصب و راه اندازی نخواهد شد زیرا درخواست شما بایستی توسط Root CA مورد نظرتان تایید و سپس Certificate مورد نظر بر روی این سرور نصب شود تا بتواند فعالیت کند، در اینجا روی گزینه Configure (در نسخه های قدیمی سرور Close بود) کلیک کنید، CA شما نصب می شود اما در حالت Stop قرار می گیرد.

Clone of SVR3 (2016TP4)-2015-12-01-15-22-33

Clone of SVR3 (2016TP4)-2015-12-01-15-26-25

Clone of SVR3 (2016TP4)-2015-12-01-15-27-47

10- در ادامه وارد کنسول مدیریتی Certificate Authority می شویم و با مشاهده علامت مربع مشکی بر روی این سرویس متوجه می شویم که سرویس مورد نظر در حالت Stop قرار دارد، اگر تلاش کنیم که این سرویس را Start کنیم با پیغام زیر مواجه می شویم که به ما می گوید بایستی Certificate ای داشته باشید که از طرف Root CA صادر شده باشد تا این سرور بتواند در حالت عملیاتی قرار بگیرد ، با توجه به اینکه ما فعلا کاری در خصوص این Certificate انجام نداده ایم نمیتوانیم CA را Start کنیم.

Clone of SVR3 (2016TP4)-2015-12-01-15-29-37

11- خوب در این مرحله کار ما در سرور Subordinate CA تمام شده است و الان کاری که بایستی انجام شود این است که فایل درخواست ایجاد شده را که دارای پسوند req است (محل فایل درخواست ما در درایو C سرور دوم ذخیره شده است که آن را وارد سرور اول میکنم) بصورت دستی روی Root CA کپی کرده و وارد کنسول مدیریت CA در Root CA شوید و مراحل زیر را انجام دهید، ابتدا بر روی نام CA راست کلیک کنید و گزینه Submit new request را انتخاب کنید، در اینجا محل قرارگیری فایل درخواست را مشخص کنید و در نهایت Open را بزنید. دقیقا مشابه آنچه که در پایین مشاهده می کنید.

SVR3 (2016TP4)-2015-12-01-15-32-57

SVR3 (2016TP4)-2015-12-01-15-33-12

12- همانطور که در تصویر پایین نیز مشاهده می کنید درخواست شما بعد از باز شدن در قسمت Pending قرار می گیرد و منتظر می ماند که شما آن را صادر یا Issue کنید. کافیست بر روی درخواست مورد نظر راست کلیک کرده و Issue را بزنید. Certificate مورد نظر شما ایجاد شده است و در قسمت Issued قرار گرفته است.

SVR3 (2016TP4)-2015-12-01-15-34-57

SVR3 (2016TP4)-2015-12-01-15-35-05

13- گام بعدی خروجی گرفتن یا کپی کردن Certificate صادر شده از قسمت Issued می باشد. برای کپی کردن Certificate کافیست ابتدا بر روی Certificate مورد نظر راست کلیک کرده و گزینه Open را بزنیم و سپس تب Details را باز کنیم و گزینه Copy to file را انتخاب کنیم، طبق مراحل جلو برویم، توجه کنید که در اینجا حتما گزینه p7b بایستی برای خروجی انتخاب شود. به تصاویر زیر دقت کنید.

SVR3 (2016TP4)-2015-12-01-15-37-32

SVR3 (2016TP4)-2015-12-01-15-37-41

14- خوب در اینجا کار ما دیگر با Root CA تمام شده است و مجددا به سراغ Subordinate CA می رویم، وارد کنسول مدیریت CA شوید و همانطور که در تصویر زیر مشاهده می کنید این سرویس در حالت Stop قرار دارد، بر روی آن راست کلیک کرده و Start را بزنید، از شما در خصوص فایل Certificate صادر شده توسط Root CA سئوال می شود که شما بایستی بر روی Yes کلیک کنید، فایل را انتخاب کنید که در اینجا ما اسم آن را Subordinate-CA گذاشته ایم. بعد از انتخاب این گزینه به شما خطای زیر نمایش داده خواهد شد.

Clone of SVR3 (2016TP4)-2015-12-01-15-41-23

Clone of SVR3 (2016TP4)-2015-12-01-15-41-29

Clone of SVR3 (2016TP4)-2015-12-01-15-42-24

Clone of SVR3 (2016TP4)-2015-12-01-15-42-44

15- خطایی که در بالا مشاهده می کنید به دلیل این است که Certificate ای که از Root CA دریافت کرده اید از سروری دریافت شده است که از نظر این سرور غیرقابل اعتماد یا Untrusted است، با کلیک کردن بر روی OK این CA در لیست سرورهای قابل اعتماد یا Trusted Ca ها قرار می گیرد. سپس شما با خطای زیر مواجه می شوید، این خطا به دلیل این صادر می شود که سرور فعلی قادر به دریافت کردن لیست Certificate های باطل شده یا CRL از سرور Root نیست، برای برطرف کردن این مشکل کافیست دستوری که در ادامه مشاهده می کنید را در CMD سرور وارد کنید تا دیگر CRL ها بررسی نشوند. بعد از انجام دستور فوق سرور را یکبار Stop و Strat کنید و این سرور آماده سرویس دهی به شبکه می باشد.

Clone of SVR3 (2016TP4)-2015-12-01-15-44-36

دستور را در CMD سرور دوم وارد نمایید:

certutil -setreg ca\CRLFlags +CRLF_REVCHECK_IGNORE_OFFLINE

Clone of SVR3 (2016TP4)-2015-12-01-15-48-43

Clone of SVR3 (2016TP4)-2015-12-01-15-51-19

خوب در این سری آموزشی شما یاد گرفتید که چگونه یک سرور Root CA ایجاد کنید که بصورت Offline و بدون نیاز به شبکه فعالیت کند و بتواند برای کار کردن سرورهای پایین دستی یا subordinate CA ها Certificate صادر کند، از این به بعد شما می توانید از سرور subordinate ساخته شده براحتی در شبکه و در ساختار اکتیودایرکتوری استفاده کنید و از قابلیت Auto Enrollment ای که دارد استفاده کنید، قابلیتی که در سرورهای Stand Alone وجود ندارد.

منبع security.itpro.ir
1 نظر
  1. علیرضا می گوید

    سلام
    چطوری میتونیم این گواهینامه ها را به صورت ولید استفاده کنیم ؟
    یعنی یک wildcard خریداری شده از certum را برای سرویس های داخلی سازمان پیاده سازی کنیم

ارسال یک نظر

آدرس ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.