Stilly

Stilly

بېكەت باشلىقى

يازمىلىرى
ئەگەشكۈچىلىرى
ئەگەشكەنلىرى
74
32
0

ئەمدى HTTPS ئىشلەتمەسلىككە باھانىڭىز قالمىدى.


Let's Encrypt ھەققىدە 

Let's Encrypt بولسا ھەقسىز ۋە سۈپەتلىك بىخەتەرلىك ئىجازەتنامە تەمىنلەيدىغان ، پايدا ئالمايدىغان خەلقئارالىق ئورگان بولۇپ ، تەمىنلىگەن مۇلازىمەتلىرى بىردەك ھەقسىز . Let's Encrypt مۇلازىمەتلىرى ھەرقايسى تېخنىكا ماگىناتلرىنىڭ ئېتراپ قىلىشى ۋە قوللىشىغا ئىرىشكەن . Let's Encrypt مۇلازىمەتلىرى ئىچىدىكى ھەقسىز SSL ئىجازەتنامىسى دەل شۇنىڭ بىر مىسالىدۇر .

بۇندىن بۇرۇن Let's Encrypt نىڭ SSL ئىجازەتنامىسى تاق دەرىجىلىك تور نامى (单域名)نىلا قوللايتى . مەسىلەن learnfans.com دىگەن تور نامىغا ئالغان SSL ئىجازەتنامىسىنى admin.learnfans.com غا ئىشلەتكىلى بولمايتتى . بۇيىل 3- ئايدا Let's Encrypt ئورگان تەرەپ كۆپ دەرىجىلىك تورنامى (泛域名) گە بولغان قوللاشنى ئېلان قىلدى . دىمەك شۇنىڭدىن كىيىن بىرلا SSL ئىجازەتنامىسىنى كۆپ قاتلاملىق تور نامىغا قوللىنىش شىرىن ئارزۇيىمىز ئەمەلگە ئاشتى .

Let's Encrypt كە دائىر قوراللار 

Let's Encrypt نىڭ ھەقسىز SSL ئىجازەتنامىسى ئىلتىماس قىلىشتا  كۆپ ئۇچرايدىغان قوراللاردىن تۆۋەندىكىلەر بار 

acme.sh

بۇ يازمىدا acme.sh توغۇرلۇق نۇقتىلىق توختىلىمىز .acme.sh بولسا ئىنتايىن قولاي بولغان SSL ئىجازەتنامىسى ئېلتىماس قىلىش قورالىدۇ . ئورگان بېتىدە تەپسىلىي ئىشلىتىش قوللانمىسى بار .  acme.sh يەنى كىلىپ  Let's Encrypt قا بولغان قوللىشىمۇ ئالاھىدە ياخشى بولۇپ ، Let's Encrypt نىڭ ھەقسىز SSL ئىجازەتنامىسى ئىلتىماس قىلىشتىكى ئەڭ ئىشەنچلىك قورالدۇر .

مېنىڭ سىستېما مۇھىتىم 

سىستېما  ubuntu16.04 ، ئاندىن web مۇلازىمىتېرى دېتالى nginx


acme.sh نى قاچىلاش

ئادەتتە acme.sh نى تۆۋەندىكى بۇيرۇق ئارقىلىق قاچىلاشقا بولىدۇ .

curl  https://get.acme.sh | sh

بۇ بۇرۇقنى نورمال ئىجرا قىلىش ئۈچۈن سىستېمىدا چوقۇم curl ۋە socat قوللانچىسى بولىشى كىرەك . بولمىسا قاچىلىساق بولىدۇ . قاچىلاش تاماملانغاندىن كىيىن نۆۋەتتىكى مۇندەرىجىدە acme.sh . ناملىق ھۆججەت خالتىسى ھاسىل بولىدۇ . ئاندىن تۆۋەندىكى بۇيرۇق ئارقىلىق acme.sh بۇيرۇقىنى تېرمىنالدا ئىجرا بولىدىغان قىلىمىز .

source ~/.bashrc

بۇ ۋاقىتتا تېرمىنالدا acme.sh  بۇيرۇقىنى ئىجرا قىلساق  بىر قاتار acme.sh تاللاشلىرى ۋە چۈشەندۈرۈشلىرى كۆرىنىدۇ . دىمەك قاچىلاش تاماملاندى .


SSL ئىجازەتنامىسى ئىلتىماس قىلىش 

 acme.sh ئادەتتە http ۋە dns دىن ئىبارەت ئىككى تەھقىقلەش ئ‍ۇسۇلىنى قوللايدىغان  بولۇپ ، بۇ يەردە http تەھقىقلەش ئۇسۇلى مىسال قىلىنىدۇ .

acme.sh --issue -d learfans.com -d www.learfans.com -w /home/domains/learnfans.com/public/


كودتىكى d- پاراممىتېرىنىڭ قىممىتى بىز SSL ئېلتىماس قىلماقچى بولغان تور نامىنى كۆرسىتىدۇ . بۇ يەردە مەن learfans.com دەپ تولدۇردۇم . ناۋادا كۆپ دەرىجىلىك بالا تور  نامى قوشماقچى بولساق كۆپ دانە d- پاراممىتېرى قوشساق بولىدۇ . w- پاراممېتىرى بولسا تور بېكەت مۇندەرىجسىنى كۆرسىتىدۇ . يەنى web مۇلازىمىتېر مەزكۇر تور نامىغا تەقسىملىگەن مۇندەرىجىنى كۆرسىتىدۇ . بۇ نۇقتا ناھايتى مۇھىم . چوقۇم مۇشۇنداق بولىشى كىرەك .

يۇقارقى بۇيرۇقنى ئ‍ىجرا قىلغاندىن كىيىن تۆۋەندىكىدەك نەتىجىگە ئېرىشىمىز . (مۇۋەپپەقيەتلىك بولسا دىمەكچىدە بۇ يەردە )

[Fri Jul 13 18:35:02 CST 2018] Your cert is in  /root/.acme.sh/learnfans.com/learnfans.com.cer
[Fri Jul 13 18:35:02 CST 2018] Your cert key is in  /root/.acme.sh/learnfans.com/learnfans.com.key
[Fri Jul 13 18:35:02 CST 2018] The intermediate CA cert is in  /root/.acme.sh/learnfans.com/ca.cer
[Fri Jul 13 18:35:02 CST 2018] And the full chain certs is there:  /root/.acme.sh/learnfans.com/fullchain.cer

دىمەك acme.sh نۆۋەتتىكى مۇندەرىجىنىڭ acme.sh. مۇندەرىجسى ئىچىگە سىز تولدۇرغان تورنامىنى مۇندەرىجە نامى قىلىپ مۇناسىۋەتلىك SSL ھۆججەتلىرىنى مەزكۇر مۇندەرىجە ئاستىغا قويىدۇ . ئىنتايىن رەتلىك ۋە چۈشىنىشلىك . بۇ يىرى ئىشقىلىپ مەنچە بەك زەن !


nginx تەڭشەش

چۈنكى مېنىڭ مۇھىم nginx بولغاچ nginx نى مىسال قىلىپ ئۆتىمەن . تۆۋەندىكى بۇيرۇق ئارقىلىق مۇناسىۋەتلىك ھۆججەتلەرنى يۆتكەش مەشخۇلاتى قىلىمز.

acme.sh --installcert -d learfans.com -d www.learfans.com  \
               --keypath       /home/ubuntu/ssl/learfans/learfans.key  \
               --fullchainpath /home/ubuntu/ssl/learfans/learfans.pem \
               --reloadcmd     "sudo service nginx force-reload"


يۇقارقى كودتىكى keypath-- ۋە fullchainpath-- پاراممېتىرى تور نامى SSL ئىجازەتنامىسى ھۆججەت ئادرىسىنى بەلگىلەيدۇ . شۇڭا بۇ ھۆججەت قىسقۇچ ۋە ھۆججەتلەر چوقۇم مەۋجۇت بولىشى كىرەك . بولمىسا خاتالىق كۆرۈلىدۇ . ھەمدە nginx يۇقارقى پاراممېتىرلارغا ئاساسەن ئاپتوماتىك ھالدا SSL ئىجازەتنامىسى ۋاقتىنى ئۇزارتىدۇ . چۈنكى Let's Encrypt ھەقسىز بولغان بىلەن ئۈنۈملۈك ۋاقتى پەقەت 3 ئاي . دىمەك ھەر 3 ئايدا بىر قېتىم ۋاقىت ئۇزارتىشقا توغرا كىلىدۇ . يۇقارقى تەڭشەك دەل مۇشۇ ئىشنى قىلىدۇ .نىمىدىگەن قولاي . مۇشۇ يىرى تېخىمۇ بەك زەن !


ئاندىن ssl_dhparam ھۆججىتى ھاسىل قىلىمىز .

openssl dhparam -out /home/ubuntu/ssl/learfans/dhparam.pem 2048

بۇ يەردىكى 2048 پاراممىتىرىنى كومپىيوتېرىڭىزنىڭ ئەمەلىي ئەھۋالىغا ئاساسەن تېخىمۇ يۇقىرى تەڭشىسڭىز بولىدۇ . مەسىلەن 4096 دىگەندەك .ssl_dhparam ھۆججىتىنىڭ رولى SSL ئىجازەتنامىسىنىڭ مەخپىيلەشتۈرۈش ھىسابلاش مېتودىنى تېخىمۇ بىخەتەرلىككە ئىگە قىلىپ ، SSL ئىجازەتنامىسىنىڭ دەرىجىسىگە بىۋاستە تەسىر قىلىدۇ . 


ئاندىن nginx نىڭ server بۆلىكىگە مەجبۇرىي https كە ئاتلاش تەڭشىكى قوشىمىز . ( ئەگەر مۇشۇنداق بولىشىنى ئارزۇ قىلسىڭىز دىمەكچىدە 

.)
server{
        .
        .
        .
listen 80;
server_name learnfans.com www.learnfans.com;
return301 https://learnfans.com$request_uri;
        .
        .
        .
}

بۇ يەردىكى ئاستى ئۈستىدىكى ئۈچ تال چىكىتنىڭ ئورنىدا سىزنىڭ باشقا تەڭشەكلىرىڭىز بار دەپ تۇرايلى . مۇھىم نۇقتا بولسا ئىككىجى قۇردىكى 301 تەڭشىكى .

ئاندىن nginxنىڭ 443 ئ‍ېغىزىغا يەنە بىر server قۇرىمىز ، ۋە ssl تەڭشەكلىرىنى ئورنىتىمىز . مەسىلەن تۆۋەندىكىسى مېنىڭ مەزكۇر بەتنىڭ https سى ئۈچۈن ئىشلەتكەن تەڭشىكىم .

server{
listen 443;
server_name learfans.com www.learfans.com;
root /home/learnfans/public/;
index index.html index.htm index.shtml index.php;
        ssl on;
 
        ssl_certificate  /home/ubuntu/ssl/learnfans/learnfans.pem;
        ssl_certificate_key  /home/ubuntu/ssl/learnfans/learnfans.key;
 
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
 
        ssl_stapling on;
        ssl_stapling_verify on;
 
        ssl_prefer_server_ciphers on;
        ssl_dhparam /home/ubuntu/ssl/learnfans/dhparam.pem;
 
        add_header Strict-Transport-Security max-age=15552000;

}


ناۋادا يۇقارقى كودنى ئىشلەتسىڭىز سىزنىڭ sll دەرىجىڭىز مىنىڭكىگە ئوخشاش +A نومۇرغا ئېرىشەلەيدۇ . ئەلۋەتتە يۇقارقى كودتىكى تور نامى ۋە sll ھۆججىتى ئادرىسغا ئۆزىڭىزنىڭ ئادرىسىنى يېزىشىڭىز كىرەك .


SSL دەرىجە تەكشۈرۈش 

 بۇ تور بەتتە مەلۇم بىر تور نامى SSL ئىجازەتنامىسى ئۇچۇرى ۋە دەرىجە كۆرسەتكۈچى قاتارلىق ئۇچۇرلارغا ئېرىشىكىلى بولىدۇ .

https://www.ssllabs.com/ssltest

خۇلاسە 

دىمەك يۇقارقى مەشخۇلاتلار بىلەن Let's Encrypt نىڭ ھەقسىز SSL ئىجازەتنامىسى ئارقىلىق تور بېكەتنى https ئارقىلىق زىيارەت قىلىش ئەمەلگە ئاشتى . ئەڭ زەن يىرى acme.sh ئاپتوماتىك ھالدا SSL ئىجازەتنامىسى ئۈنۈملۈك ۋاقتىنى ئۇزارتىپ بىرىدۇ . بىزنىڭ 3 ئايدا بىر قېتىم قايتا ۋاقىت ئۇزارتىش مەشخۇلاتى قىلىشىمىزنىڭ ھاجىتى يوق . نىمىدىگەن زەن ھە ....


3ئەزا بۇ تېمىنى ياقتۇردى
Stilly يانتاق heweskar
  • Expert

    2 ئاي بۇرۇن
    它是由Netscape开发并内置于其浏览器中,用于对数据进行加密和解密操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全套接层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是像HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

    Stilly

    2 ئاي بۇرۇن

    تېمىغا قاتناشقىنىڭىزغا مەرھابا ، ئامال بار ئىنكاسنى ئۇيغۇرچە يازساق .
  • Ivan_Uy

    2 ئاي بۇرۇن
    مەن قانداق قىلسام يازما يازالايمەن؟

    Stilly

    2 ئاي بۇرۇن

    قانداق قىلسىڭىز نىمىنى يازالايسىز ؟ مەقسىتىڭىزنى ئىنىقراق دىمەمسىز ؟
  • TARQAT

    2 ئاي بۇرۇن
    بىزنىڭ بوشۇلۇقلارمۇ بولۇرمۇ~~~~

    Stilly

    2 ئاي بۇرۇن

    بوشلۇققا بولمايدۇ بۇرادەر .