JavaRush /Блоги Java /Random-TG /Аз HTTP ба HTTPS
Viacheslav
Сатҳи

Аз HTTP ба HTTPS

Дар гурӯҳ нашр шудааст
Аз HTTP ба HTTPS - 1
Мундариҷа:

Муқаддима

Дар ҷаҳони муосир, шумо наметавонед бе барномаҳои веб зиндагӣ кунед. Ва мо бо як таҷрибаи хурд оғоз мекунем. Дар кӯдакӣ дар ёд дорам, ки чӣ гуна дар ҳама дӯконҳо як рӯзномаи «Аргументы и факты» фурӯхта мешуданд. Ман онҳоро ба ёд овардам, зеро аз рӯи тасаввуроти шахсии ман аз кӯдакӣ ин рӯзномаҳо ҳамеша аҷиб менамуданд. Ва ман қарор додам, ки оё мо бояд ба вебсайти онҳо равем:
Аз HTTP ба HTTPS - 2
Агар мо ба кӯмаки Google Chrome равем, мо хоҳем хонд, ки ин сайт пайвасти бехатарро истифода намебарад ва маълумоте, ки шумо бо сайт мубодила мекунед, метавонад барои шахсони сеюм дастрас бошад. Биёед чанд хабари дигарро тафтиш кунем, масалан, хабарҳои Санкт-Петербург аз Фонтанка, як расонаи электронӣ:
Аз HTTP ба HTTPS - 3
Тавре ки шумо мебинед, вебсайти Фонтанка дар асоси ин маълумотҳо мушкилоти амниятӣ надорад. Маълум мешавад, ки захираҳои веб метавонанд бехатар бошанд ё набошанд. Мо инчунин мебинем, ки дастрасӣ ба захираҳои ҳифзнашуда тавассути протоколи HTTP сурат мегирад. Ва агар захира ҳифз карда шуда бошад, пас мубодилаи маълумот бо истифода аз протоколи HTTPS анҷом дода мешавад, ки дар он S дар охири маънои "Бехатар" аст. Протоколи HTTPS дар мушаххасоти rfc2818 тавсиф шудааст: " HTTP Over TLS ". Биёед кӯшиш кунем, ки веб-барномаи шахсии худро созем ва худамон бубинем, ки он чӣ гуна кор мекунад. Ва дар ин роҳ мо шартҳоро мефаҳмем.
Аз HTTP ба HTTPS - 4

Барномаи веб дар Java

Ҳамин тавр, мо бояд як веб-барномаи хеле соддаро дар Java эҷод кунем. Аввалан, ба мо худи барномаи Java лозим аст. Барои ин, мо системаи сохтани худкори лоиҳаи Gradle -ро истифода хоҳем бурд. Ин ба мо имкон медиҳад, ки сохтори директорияи заруриро дастӣ эҷод накунем + Gradle ҳамаи китобхонаҳои барои лоиҳа барои мо заруриро идора мекунад ва кафолат медиҳад, ки онҳо ҳангоми иҷрои code дастрасанд. Шумо метавонед бештар дар бораи Gradle дар шарҳи кӯтоҳ хонед: " Муқаддимаи мухтасар ба Gradle ". Биёед Gradle Init Plugin -ро истифода барем ва фармонро иҷро кунем:
gradle init --type java-application
Пас аз ин, биёед скрипти сохтмонро кушоем build.gradle, ки дар он тавсифи он, ки лоиҳаи мо аз кадом китобхонаҳо иборат аст ва Gradle ба мо пешниҳод мекунад. Биёед ба он ҷо вобастагии веб-serverро илова кунем, ки мо дар он озмоиш хоҳем кард:
dependencies {
    // Web server
    implementation 'io.undertow:undertow-core:2.0.20.Final'
     // Use JUnit test framework
     testImplementation 'junit:junit:4.12'
}
Барои кор кардани веб-барнома, ба мо бешубҳа serverи веб лозим аст, ки дар он замимаи мо ҷойгир карда мешавад. Гуногунии зиёди веб-serverҳо вуҷуд доранд, аммо асосии онҳо инҳоянд: Tomcat, Jetty, Undertow. Ин дафъа мо Undertow-ро интихоб мекунем. Барои фаҳмидани он ки мо бо ин веб-serverи худ чӣ гуна кор карда метавонем, биёед ба вебсайти расмии Undertow равем ва ба бахши ҳуҷҷатҳо биравем . Шумо ва ман вобастагиро ба Undertow Core пайваст кардаем, аз ин рӯ мо ба бахш дар бораи ҳамин Core , яъне аслӣ, асоси веб-server таваҷҷӯҳ дорем. Роҳи осонтарини истифодаи API Builder барои Undertow аст:
public static void main(String[] args) {
	Undertow server = Undertow.builder()
            .addHttpListener(8080, "localhost")
            .setHandler(new HttpHandler() {
                @Override
                public void handleRequest(final HttpServerExchange exchange) throws Exception {
                    exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                    exchange.getResponseSender().send("Hello World");
                }
            }).build();
    server.start();
}
Агар мо codeро иҷро кунем, мо метавонем ба веб-манбаи зерин муроҷиат кунем:
Аз HTTP ба HTTPS - 5
Он оддӣ кор мекунад. Бо шарофати API Undertow Builder, мо ба localhost ва порти 8080 гӯшкунандаи HTTP илова мекунем. Ин шунаванда дархостҳоро аз браузери веб қабул мекунад ва дар посух сатри "Hello World" -ро бармегардонад. Барномаи олии веб. Аммо тавре мебинем, мо протоколи HTTP-ро истифода мебарем, яъне. Ин намуди мубодилаи маълумот бехатар нест. Биёед бифаҳмем, ки мубодила бо истифода аз протоколи HTTPS чӣ гуна сурат мегирад.
Аз HTTP ба HTTPS - 6

Талабот барои HTTPS

Барои фаҳмидани тарзи фаъол кардани HTTPS, биёед ба мушаххасоти HTTPS баргардем: " RFC-2818: HTTP Over TLS ". Тибқи мушаххасот, маълумот дар протоколи HTTPS тавассути протоколҳои криптографии SSL ё TLS интиқол дода мешавад. Одамонро аксар вақт консепсияи SSL ва TLS гумроҳ мекунанд. Дар асл, SSL versionҳои худро таҳаввул кард ва тағир дод. Баъдтар, TLS қадами навбатӣ дар таҳияи протоколи SSL гардид. Яъне, TLS танҳо як versionи нави SSL аст. Мушаххасот чунин мегӯяд: "SSL ва вориси он TLS". Ҳамин тавр, мо фаҳмидем, ки протоколҳои криптографии SSL/TLS мавҷуданд. SSL ихтисораи Secure Sockets Layer аст ва ҳамчун "қабати васлаки бехатар" тарҷума мешавад. Сокет аз забони англисӣ тарҷумашуда пайвасткунанда аст. Иштирокчиёни интиқоли маълумот тавассути шабака розеткаҳоро ҳамчун интерфейси барномасозӣ (яъне API) барои муошират бо ҳамдигар тавассути шабака истифода мебаранд. Браузер ҳамчун муштарӣ амал мекунад ва розеткаи муштариро истифода мебарад ва serverе, ки дархост қабул мекунад ва посух медиҳад, розеткаи serverро истифода мебарад. Ва маҳз дар байни ин розеткаҳо мубодилаи маълумот ба амал меояд. Аз ин рӯ, протокол дар ибтидо SSL ном дошт. Аммо вақт гузашт ва протокол таҳаввул ёфт. Ва дар як лаҳза, протоколи SSL ба протоколи TLS табдил ёфт. TLS барои амнияти қабати нақлиёт кӯтоҳ аст. Протоколи TLS, дар навбати худ, ба versionи 3.0 мушаххасоти протоколи SSL асос ёфтааст. Протоколи TLS мавзӯи мақолаҳо ва баррасиҳои алоҳида аст, бинобар ин ман танҳо маводҳоеро нишон медиҳам, ки ба ман ҷолибанд: Хулоса, асоси HTTPS дастфишори TLS ва санҷиши "Идентификатсияи server" (яъне идентификатсияи server) бо истифода аз сертификати рақамии он мебошад. Муҳим аст. Биёед инро дар хотир дорем, зеро ... Мо баъдтар ба ин далел бармегардем. Ҳамин тавр, қаблан мо HttpListener-ро истифода мебурдем, то ба server бигӯем, ки чӣ тавр тавассути протоколи HTTP кор кунад. Агар дар мисоли боло мо барои кор бо HTTP як HttpListener илова карда бошем, пас барои кор бо HTTPS мо бояд HttpsListener илова кунем:
Аз HTTP ба HTTPS - 7
Аммо барои илова кардани он ба мо SSLContext лозим аст. Ҷолиб он аст, ки SSLContext синф аз Undertow нест, балки javax.net.ssl.SSLContext. Синфи SSLContext қисми ба истилоҳ " Java Secure Socket Extension " (JSSE) - тамдиди Java барои таъмини амнияти пайвастшавӣ ба Интернет мебошад. Ин васеъкунӣ дар " Дастури истинодҳои Java Secure Socket Extension (JSSE) " тавсиф шудааст . Тавре ки шумо аз қисми муқаддимаи ҳуҷҷатҳо мебинед, JSSE чаҳорчӯба ва татбиқи Java протоколҳои SSL ва TLS-ро таъмин мекунад. Чӣ тавр мо SSLContext-ро ба даст меорем? JavaDoc SSLContext -ро кушоед ва усули getInstance -ро пайдо кунед . Тавре ки шумо мебинед, барои ба даст овардани SSLContext мо бояд номи "Протоколи бехатарии васлаки" -ро муайян кунем. Тавсифи параметрҳо нишон медиҳад, ки ин номҳоро метавон дар " Java Cryptography Architecture Algorithm Name Documentation " пайдо кард. Аз ин рӯ, биёед дастурҳоро риоя кунем ва ба ҳуҷҷатҳо равем. Ва мо мебинем, ки мо метавонем байни SSL ва TLS интихоб кунем:
Аз HTTP ба HTTPS - 8
Акнун мо мефаҳмем, ки мо бояд SSLContext-ро ба таври зерин эҷод кунем:
public SSLContext getSSLContext() {
	// 1. Получаем контекст, в рамках которого будем работать по TLS протоколу
	SSLContext context = null;
	try {
		context = SSLContext.getInstance("TLS");
	} catch (NoSuchAlgorithmException e) {
		throw new IllegalStateException(e);
	}
	return context;
}
Пас аз сохтани контексти нав, мо дар хотир дорем, ки SSLContext дар " Дастури истинод ба Java Secure Socket Extension (JSSE) " тавсиф шудааст. Мо мехонем ва мебинем, ки "SSLContext-и навтаъсис бояд бо даъвати усули init оғоз карда шавад". Яъне эҷоди контекст кофӣ нест. Онро оғоз кардан лозим аст. Ва ин мантиқист, зеро дар бораи амният, мо танҳо ба шумо гуфтем, ки мо мехоҳем протоколи TLS-ро истифода барем. Барои оғоз кардани SSLContext мо бояд се чизро таъмин кунем: KeyManager, TrustManager, SecureRandom.
Аз HTTP ба HTTPS - 9

Менеҷери калидӣ

KeyManager як менеҷери калидӣ мебошад. Ӯ барои он масъул аст, ки ба касе, ки бо мо тамос мегирад, чӣ гуна "муқаррароти тасдиқкуниро" медиҳад. Эътиборномаро метавон ҳамчун шахсият тарҷума кард. Шахсият барои он лозим аст, ки муштарӣ мутмаин бошад, ки server он касест, ки ӯ иддао мекунад ва ба он бовар кардан мумкин аст. Чӣ ҳамчун мушаххас истифода мешавад? Тавре ки мо дар хотир дорем, шахсияти server бо сертификати рақамии server тасдиқ карда мешавад. Ин равандро метавон ба таври зерин муаррифӣ кард:
Аз HTTP ба HTTPS - 10
Илова бар ин, " Дастури истинодҳои JSSE: Чӣ тавр SSL кор мекунад " мегӯяд, ки SSL "криптографияи асимметрӣ" -ро истифода мебарад, ки маънои онро дорад, ки мо ба як ҷуфт калид ниёз дорем: калиди ҷамъиятӣ ва калиди хусусӣ. Азбаски мо дар бораи криптография гап мезанем, "Архитектураи Java Cryptography" (JCA) ба кор меояд. Oracle ҳуҷҷати олиро дар бораи ин меъморӣ пешниҳод мекунад: " Дастури истинод ба меъмории Java Cryptography (JCA) ". Илова бар ин, шумо метавонед шарҳи мухтасари JCA-ро дар JavaRush хонед: " Архитектураи криптографияи Java: шиносоии аввал ." Ҳамин тавр, барои оғоз кардани KeyManager ба мо як KeyStore лозим аст, ки сертификати serverи моро нигоҳ медорад. Роҳи маъмултарини сохтани калид ва мағозаи сертификат ин утorтаи keytool мебошад, ки ба JDK дохил карда шудааст. Намунаро дар ҳуҷҷатҳои JSSE дидан мумкин аст: " Эҷоди як анбори калид барои истифода бо JSSE ". Ҳамин тавр, мо бояд утorтаи KeyTool-ро истифода барем, то мағозаи калидиро эҷод кунем ва дар он ҷо шаҳодатнома нависем. Ҷолиб он аст, ки тавлиди калид қаблан бо истифода аз -genkey муайян карда шуда буд, аммо ҳоло тавсия дода мешавад, ки -genkeypair истифода шавад. Мо бояд чизҳои зеринро муайян кунем:
  • тахаллус : тахаллус ё танҳо номе, ки дар зери он вуруд дар мағозаи калид захира карда мешавад
  • keyalg : Алгоритми рамзгузории калид. Биёед алгоритми RSA-ро интихоб кунем, ки он аслан як ҳалли стандартӣ барои ҳадафи мост.
  • андозаи калид : Андозаи калид (бо бит). Андозаи ҳадди ақали тавсияшаванда 2048 аст, зеро... андозаи хурдтар аллакай кафида шудааст. Шумо метавонед бештар дар ин ҷо хонед: " сертификати ssl дар 2048 бит ".
  • dname : Номи барҷаста, номи барҷаста.
Фаҳмидани он муҳим аст, ки манбаи дархостшуда (масалан, https://localhost) бо он муқоиса карда мешавад. Инро "мутобиқати мавзӯъ cn" меноманд.
  • эътибор : Давомнокии рӯзҳое, ки дар давоми он шаҳодатномаи тавлидшуда эътибор дорад, яъне. эътибор дорад.
  • ext : Васеъсозии шаҳодатнома дар " Изоҳҳои номбаршуда " нишон дода шудааст.
Барои Шаҳодатномаҳои худ имзошуда (яъне барои сертификатҳое, ки мустақилона сохта шудаанд), шумо бояд васеъшавии зеринро муайян кунед:
  • -ext san:critical=dns:localhost,ip:127.0.0.1 > барои иҷрои мувофиқати мавзӯъ аз рӯи SubjectAlternativeName
  • -ext bc=ca:false > барои нишон додани он, ки ин сертификат барои имзои сертификатҳои дигар истифода намешавад
Биёед фармонро иҷро кунем (мисол барои OS Windows):
keytool -genkeypair -alias ssl -keyalg RSA -keysize 2048 -dname "CN=localhost,OU=IT,O=Javarush,L=SaintPetersburg,C=RU,email=contact@email.com" -validity 90 -keystore C:/keystore.jks -storepass passw0rd -keypass passw0rd -ext san:critical=dns:localhost,ip:127.0.0.1 -ext bc=ca:false
Зеро файл сохта мешавад, боварӣ ҳосил кунед, ки шумо тамоми ҳуқуқҳои эҷоди файлро доред. Шумо инчунин эҳтимолан чунин маслиҳатҳоро хоҳед дид:
Аз HTTP ба HTTPS - 11
Дар ин ҷо ба мо гуфтанд, ки JKS формати хусусӣ аст. Моликият маънои онро дорад, ки он моликияти хусусии муаллифон аст ва танҳо барои истифода дар Java пешбинӣ шудааст. Ҳангоми кор бо хидматрасониҳои тарафи сеюм, метавонад ихтилоф ба миён ояд, бинобар ин моро огоҳ мекунанд. Илова бар ин, мо метавонем хатогиро гирем: The destination pkcs12 keystore has different storepass and keypass. Ин хатогӣ аз он сабаб рух медиҳад, ки гузарвожаҳо барои вуруд дар Мағозаи калидҳо ва худи анбори калидҳо гуногунанд. Тавре ки дар ҳуҷҷатҳои keytool гуфта шудааст , "Масалан, аксари абзорҳои тарафи сеюм барои якхела будани гузарвожаи мағоза ва гузариш дар мағозаи калидҳои PKCS #12 талаб мекунанд." Мо метавонем калидро худамон муайян кунем (масалан, -destkeypass entrypassw). Аммо беҳтар аст, ки талаботро вайрон накунед ва ҳамон паролро муқаррар кунед. Пас, воридот метавонад чунин бошад:
keytool -importkeystore -srckeystore C:/keystore.jks -destkeystore C:/keystore.jks -deststoretype pkcs12
Намунаи муваффақият:
Аз HTTP ба HTTPS - 12
Барои содироти сертификат ба файл, шумо метавонед иҷро кунед:
keytool -export -alias ssl -storepass passw0rd -file C:/server.cer -keystore C:/keystore.jks
Илова бар ин, мо метавонем мундариҷаи Keystore-ро ба таври зерин дастрас кунем:
keytool -list -v -keystore C:/keystore.jks -storepass passw0rd
Аҷоиб, ҳоло мо як мағозаи калидӣ дорем, ки дорои сертификат мебошад. Акнун шумо метавонед онро аз code дастрас кунед:
public KeyStore getKeyStore() {
	// Согласно https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#KeyStore
	try(FileInputStream fis = new FileInputStream("C:/keystore.jks")){
		KeyStore keyStore = KeyStore.getInstance("pkcs12");
		keyStore.load(fis, "passw0rd".toCharArray());
		return keyStore;
	} catch (IOException ioe) {
		throw new IllegalStateException(ioe);
	} catch (KeyStoreException | NoSuchAlgorithmException | CertificateException e) {
		throw new IllegalStateException(e);
	}
}
Агар KeyStore мавҷуд бошад, мо метавонем KeyManager-ро оғоз кунем:
public KeyManager[] getKeyManagers(KeyStore keyStore) {
	String keyManagerAlgo = KeyManagerFactory.getDefaultAlgorithm();
	KeyManagerFactory keyManagerFactory = null;
	try {
		keyManagerFactory = KeyManagerFactory.getInstance(keyManagerAlgo);
		keyManagerFactory.init(keyStore, "passw0rd".toCharArray());
		return keyManagerFactory.getKeyManagers();
	} catch (NoSuchAlgorithmException e) {
		throw new IllegalStateException(e);
	} catch (UnrecoverableKeyException | KeyStoreException e) {
		throw new IllegalStateException(e);
	}
}
Максади аввалини мо ба амал омад. Фаҳмидани он ки TrustManager чист. TrustManager дар ҳуҷҷатҳои JSSE дар бахши " Интерфейси TrustManager " тавсиф шудааст. Он ба KeyManager хеле монанд аст, аммо ҳадафи он санҷидани он аст, ки оё ба шахси дархосткунандаи пайвастшавӣ эътимод доштан мумкин аст. Ошкоро гуем, ин KeyManager баръакс аст =) Ба мо TrustManager лозим нест, бинобар ин мо нулро мегузорем. Пас аз он TrustManager-и пешфарз сохта мешавад, ки корбари ниҳоиро ба serverи мо муроҷиат намекунад. Ҳуҷҷатҳо чунин мегӯянд: "амалии пешфарз истифода мешавад". Айнан бо SecureRandom. Агар мо null-ро муайян кунем, татбиқи пешфарз истифода мешавад. Биёед танҳо дар хотир дорем, ки SecureRandom синфи JCA аст ва дар ҳуҷҷатҳои JCA дар бахши " Синфи SecureRandom " тавсиф шудааст. Дар маҷмӯъ, омодагӣ бо назардошти ҳамаи усулҳои дар боло тавсифшуда метавонад чунин бошад:
public static void main(String[] args) {
	// 1. Подготавливаем приложение к работе по HTTPS
	App app = new App();
	SSLContext sslContext = app.getSSLContext();
	KeyStore keyStore = app.getKeyStore();
	KeyManager[] keyManagers = app.getKeyManagers(keyStore);
	try {
		sslContext.init(keyManagers, null, null);
	} catch (KeyManagementException e) {
		throw new IllegalStateException(e);
	}
Танҳо оғоз кардани server боқӣ мемонад:
// 2. Поднимаем server
 	int httpsPort = 443;
	Undertow server = Undertow.builder()
            .addHttpsListener(httpsPort, "localhost", sslContext)
            .setHandler(new HttpHandler() {
                @Override
                public void handleRequest(final HttpServerExchange exchange) throws Exception {
                    exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                    exchange.getResponseSender().send("Hello World");
                }
            }).build();
	server.start();
}
Ин дафъа serverи мо дар суроғаи зерин дастрас хоҳад буд. https://localhost:443 Аммо, мо то ҳол хатогиеро мегирем, ки ба ин манобеъ бовар кардан мумкин нест:
Аз HTTP ба HTTPS - 13
Биёед бифаҳмем, ки дар сертификат чӣ хато аст ва дар ин бора чӣ бояд кард.
Аз HTTP ба HTTPS - 14

Идоракунии сертификатсия

Ҳамин тавр, serverи мо аллакай барои кор тавассути HTTPS омода аст, аммо муштарӣ ба он эътимод надорад. Чаро? Биёед бубинем:
Аз HTTP ба HTTPS - 15
Сабаб дар он аст, ки ин шаҳодатнома Шаҳодатномаи худидоракунии имзошуда мебошад. Шаҳодатномаи SSL-и худ имзошуда ба сертификати калиди ҷамъиятӣ дахл дорад, ки аз ҷониби ҳамон шахсе, ки онро муайян мекунад, дода ва имзо шудааст. Яъне, он аз ҷониби ягон мақомоти бонуфузи сертификатсия дода нашудааст (CA, инчунин бо номи Authority Certificate). Органи сертификатсия ҳамчун шахси боваринок амал мекунад ва дар ҳаёти ҳаррӯза ба нотариус монанд аст. Ӯ итминон медиҳад, ки шаҳодатномаҳои додааш боэътимоданд. Хизматрасонии додани сертификатҳо аз ҷониби чунин CA пулакӣ аст, бинобар ин ба ҳеҷ кас аз даст додани эътимод ва хатарҳои эътибори худ ниёз надорад. Бо нобаёнӣ, якчанд мақомоти сертификатсия вуҷуд доранд, ки эътимод доранд. Ин рӯйхат таҳриршаванда аст. Ва ҳар як системаи амалиётӣ дорои идоракунии шахсии рӯйхати мақомоти сертификатсия мебошад. Масалан, идоракунии ин рӯйхатро дар Windows метавон дар инҷо хонд: " Идоракунии сертификатҳои решаи боэътимод дар Windows ". Биёед сертификатро ба шахсони боэътимод илова кунем, ки дар паёми хатогӣ нишон дода шудааст. Барои ин, аввал сертификатро зеркашӣ кунед:
Аз HTTP ба HTTPS - 16
Дар OS Windows, Win+R -ро пахш кунед ва mmcбарои занг задан ба консоли идоракунӣ иҷро кунед. Баъдан, Ctrl+M-ро пахш кунед, то бахши "Сертификатҳо" -ро ба консоли ҷорӣ илова кунед. Минбаъд, дар зербахши "Мақомотҳои сертификатсияи решаи боэътимод" мо иҷро хоҳем кард Действия / Все задачи / Импорт. Биёед файлеро, ки қаблан ба файл ворид карда шуда буд, ворид кунем. Браузер шояд ҳолати гузаштаи эътимоднокии сертификатро дар хотир дошта бошад. Аз ин рӯ, пеш аз кушодани саҳифа шумо бояд браузерро бозоғоз намоед. Масалан, дар Google Chrome дар сатри суроғаҳо шумо бояд chrome://restart. Дар OS Windows, шумо инчунин метавонед утorтаро барои дидани сертификатҳо истифода баред certmgr.msc:
Аз HTTP ба HTTPS - 17
Агар мо ҳама чизро дуруст иҷро кунем, мо занги бомуваффақиятро ба serverи худ тавассути HTTPS мебинем:
Аз HTTP ба HTTPS - 18
Тавре ки шумо мебинед, сертификат ҳоло эътиборнок ҳисобида мешавад, манбаъ дастрас аст ва ҳеҷ гуна хатогӣ вуҷуд надорад.
Аз HTTP ба HTTPS - 19

Хатти поён

Ҳамин тавр, мо фаҳмидем, ки схемаи фаъол кардани протоколи HTTPS дар веб-server чӣ гуна аст ва барои ин чӣ лозим аст. Умедворам, ки дар ин лаҳза равшан аст, ки дастгирӣ тавассути ҳамкории Java Cryptography Architecture (JCA), ки барои криптография масъул аст ва Java Secure Socket Extension (JSSE), ки татбиқи TLS-ро дар паҳлӯи Java таъмин мекунад. Мо дидем, ки чӣ гуна утorтаи keytool, ки ба JDK дохил карда шудааст, барои кор бо калид ва мағозаи сертификатҳои KeyStore истифода мешавад. Илова бар ин, мо фаҳмидем, ки HTTPS барои амният протоколҳои SSL/TLS-ро истифода мебарад. Барои мустаҳкам кардани ин, ман ба шумо маслиҳат медиҳам, ки мақолаҳои олиро дар ин мавзӯъ хонед: Умедворам, ки пас аз ин баррасии хурд, HTTPS каме шаффофтар мешавад. Ва агар ба шумо лозим аст, ки HTTPS-ро фаъол созед, шумо метавонед шартҳоро аз ҳуҷҷатҳои serverҳо ва чаҳорчӯбаҳои барномавии худ ба осонӣ дарк кунед. #Вячеслав
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION