PowerStore: Sådan erstattes det selvsignerede klyngeadministrationscertifikat med et certifikat, der er udstedt af et eksternt nøglecenter
Summary: Denne artikel indeholder en trinvis vejledning i, hvordan du erstatter PowerStores selvsignerede certifikat, der bruges til administration, med et certifikat udstedt af et eksternt nøglecenter. ...
Instructions
Bemærk: Generelt understøtter PowerStore ikke tredjeparts-CA'er, der signerer GUI-certifikatet. Browserforummet forbyder nøglecentre at signere certifikater med begrænsede IP-adresser i certifikatet, da private IP-adresser er inkluderet i den begrænsede liste og også kræves i certifikatet af PowerStore, vil nøglecenteret afvise anmodningen. Den eneste mulighed for at få et certifikat underskrevet af en 3. parts CA ville være at bruge offentlige IP'er leveret af en internetudbyder eller IANA til administrationsnetværket.
Denne artikel henviser til et certifikat, der er signeret af et nøglecenter for en privat virksomhed (f.eks. ved hjælp af OpenSSL, Microsoft CA eller noget lignende)
Denne artikel dækker PowerStoreOS 2.1. Du kan finde nyere versioner af PowerStore OS under PowerStore: Oprettelse og import af et signeret HTTPS-administrationscertifikat
Den første understøttelse af udskiftning af selvsignerede PowerStore Management-certifikater med eksterne CA-udstedte certifikater fås i begrænset form i PowerStoreOS version 2.1.
Ud over at sikre adgang til brugergrænsefladen ved hjælp af HTTPS har klyngeadministrationscertifikatet andre anvendelser, f.eks. forskellige interne kommunikationsmuligheder osv.
Følgende begrænsninger gælder under den første introduktion af funktionen, som blev leveret med PowerStoreOS version 2.1.
Disse begrænsninger og begrænsninger gælder for PowerStoreOS version 2.1.x for import af et privat CA-signeret servercertifikat. Disse begrænsninger og begrænsninger gælder ikke for PowerStoreOS version 3.0 eller nyere.
- Import af tredjepartscertifikater understøttes ikke på
- En klynge med flere enheder
- En klynge, der er i replikeringsforhold til en anden klynge
- Klynge, hvor SDNAS er konfigureret
- Et samlet system (fil + blok)
- En tilbagevenden til det oprindelige PowerStore CA-signerede certifikat understøttes ikke, når tredjepartscertifikater importeres til en klynge.
- Der genereres ingen advarsler om certifikatudløb.
- Det certifikat, der skal importeres, bør være gyldigt i mindst 30 dage eller derover.
- Import af tredjepartscertifikater understøttes ikke via brugergrænsefladen i PowerStore Manager.
- Import af tredjepartscertifikater understøttes kun for administrationstrafik ( Management_HTTP ) og ikke for andre tjenester (f.eks. VASA, replikering osv.).
Vigtigt: Gennemgå og forstå disse begrænsninger fuldt ud, hvis du kører PowerStoreOS 2.1. Fortsæt IKKE, hvis dit system falder ind under en af ovenstående kategorier.
Sådan importeres et certifikat, der er udstedt af et eksternt nøglecenter, ved hjælp af brugergrænsefladen i PowerStore Manager
Den manuelle cli-procedure er kun påkrævet for systemer, der kører PowerStoreOS version 2.1.
På systemer, der kører PowerStoreOS v3 og nyere, skal du bruge PowerStore Manager-brugergrænsefladen til at importere certifikatet.
Du kan finde flere oplysninger i PowerStore-vejledningen til sikkerhedskonfiguration.
Certifikatvindue for PowerStore Manager-webbrugergrænseflade – Signeret klynge:
Sådan importeres et certifikat, der er udstedt af et eksternt nøglecenter ved hjælp af CLI
Trin 1 – Hent IPv4-/IPv6-klyngeadresse
Det første trin er at hente klyngens IPv4/IPv6-adresse (administration). Denne IP er integreret i det aktuelle selvsignerede administrationscertifikat. Det er også den samme IP-adresse, som du ville indtaste i browseren for at oprette forbindelse til PowerStore Manager-brugergrænsefladen.
Trin 1a
Hent listen over alle certifikater.
$ pstcli -u admin -p <password> -d <cluster_ip> x509_certificate show
# | id | type | service | is_current | is_valid
----+--------------------------------------+--------+------------------+------------+----------
1 | 00907634-b4eb-446a-a381-aae685bae066 | Server | Management_HTTP | yes | yes
2 | 9d0ec275-3688-4ae2-922b-639e1cfb0b88 | Server | VASA_HTTP | yes | yes
3 | c5f03cf7-fe1d-40bd-b6fb-7abba0c6026a | Client | Replication_HTTP | yes | yes
<trimmed for brevity>
Notér certifikatets id-felt med tjenestens Management_HTTP og typen Server.
Trin 1b
Få alle oplysninger om det aktuelle selvsignerede administrationscertifikat.
Kør kommandoen nedenfor, og erstat id med den værdi, du hentede i trin 1a.
$ pstcli -u admin -p <password> -d <cluster_ip> x509_certificate -id 00907634-b4eb-446a-a381-aae685bae066 show
id = 00907634-b4eb-446a-a381-aae685bae066
type = Server
type_l10n = Server
service = Management_HTTP
service_l10n = Management_HTTP
is_current = yes
is_valid = yes
members:
subject = CN=Dell EMC PowerStore CA E79NFK8T,O=Dell EMC,ST=MA,C=US
serial_number = 14daac34e1db4711
signature_algorithm = SHA384withRSA
issuer = CN=Dell EMC PowerStore CA E79NFK8T,O=Dell EMC,ST=MA,C=US
valid_from = 11/16/21 23:16:33
valid_to = 10/30/89 23:16:33
public_key_algorithm = RSA
key_length = 4096
thumbprint_algorithm = SHA-256
thumbprint_algorithm_l10n = SHA-256
thumbprint = 279ea39ad7b8d2e0f3695a850a7d302e8318e080e1092fccb314c8f4f19e50a4
certificate = MIIFdDCCA1ygAwIBAgIIFNqsNOHbRxEwDQYJKoZIhvcNAQEMBQAwVzELMAkGA1UEBhMCVVMxCzAJBg
<trimmed for brevity>
Ar4eTY0aBe7R8fnSbg97EFqF+1gGhKlxrOU9AICgZJDh0PDQJRcYLFJBi36Ktt++mtRgpSig8VvypZ
depth = 2
subject_alternative_names =
subject = C=US+O=Dell+L=Hopkinton+OU=PowerStore+ST=Massachusetts+CN=ManagementHTTP.xxxxxxxxxxxx
serial_number = xxxxxxxxxxxxx
signature_algorithm = SHA256withRSA
issuer = CN=Dell EMC PowerStore CA E79NFK8T,O=Dell EMC,ST=MA,C=US
valid_from = 11/16/21 23:56:23
valid_to = 11/15/26 23:56:23
public_key_algorithm = RSA
key_length = 4096
thumbprint_algorithm = SHA-256
thumbprint_algorithm_l10n = SHA-256
thumbprint = eedf2f9c1d0f70f018857110e87cd122f4fa31140e694c30b5ea10398629dbf1
certificate = MIIFejCCA2KgAwIBAgIJANlUDR+8+78qMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNVBAYTAlVTMQswCQ
<trimmed for brevity>
ZTShTW0BFh3IeAgt23Tlhz+npsJNqbvxXB+8hXqvNWcpzeSluiUalqB3qU9MwCzwHpEkXqagzk8EZM
depth = 1
subject_alternative_names = aaa.bbb.ccc.ddd, 1111:2222:3333:4444:5555:6666:7777:8888
Du får to certifikater i outputtet: PowerStore Internal CA og Management certifikatet signeret af det interne CA.
Administrationscertifikatet har dybdefeltet = 1, og feltet subject_alternative_names udfyldes med IPv4- og IPv6 IP-adresserne.
Hvis du bruger IPv4 til at administrere din klynge, bør du se IPv4 Cluster Management IP som den første i feltet subject_alternative_names (som i eksemplet ovenfor - aaa.bbb.ccc.ddd). Hvis du bruger IPv6 til at administrere din klynge, skal du skrive den første IPv6-adresse ned.
Trin 2 – Generering af anmodning om certifikatsignering (CSR)
Sådan genereres en CSR, som senere føres til en certifikatmyndighed til signering.
Trin 2a
Kør følgende kommando for at få hjælp til at generere CSR og gøre dig bekendt med dens syntaks:
$ pstcli -u admin -p <password> -d <cluster_ip> help x509_certificate csr
x509_certificate csr -type { Server | Client | CA_Client_Validation | CA_Server_Validation } -service { Management_HTTP | Replication_HTTP | VASA_HTTP | Import_HTTP | LDAP_HTTP | Encrypt_HTTP | Syslog_HTTP } -dns_name <value>,...
-ip_addresses <value>,... -key_length <2048..4096> [ -scope <value> ] [ -common_name <value> ] [ -organizational_unit <value> ] [ -organization <value> ] [ -locality <value> ] [ -state <value> ] [ -country <value> ] [ { -passphrase
<value> | -passphraseSecure } ] [ -async ]
<trimmed for brevity>
Indstillingerne med fed skrift ovenfor er obligatoriske, alle andre er valgfrie. Kontakt CA- eller PKI-administratoren, hvis virksomhedens certifikatpolitik kræver brug af et af disse valgfrie felter.
Trin 2b
Generer en CSR ved hjælp af retningslinjerne ovenfor.
$ pstcli -u admin -p <password> -d <cluster_ip> x509_certificate csr -type Server -service Management_HTTP -dns_name "powerstoreXY.mycompany.com" -ip_addresses aaa.bbb.ccc.ddd -key_length 2048 -scope "External" -common_name "powerstoreXY.mycompany.com"
Outputtet af kommandoen returnerer et id og CSR i BASE64-kodning. F.eks.:
1 | 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd | Server | Management_HTTP | Management_HTTP | no | no | -----BEGIN CERTIFICATE REQUEST----- MIIDJTCCAg0CAQAwezF5MAkGA1UEBhMCVVMwCwYDVQQKEwREZWxsMBAGA1UEBxMJ <trimmed for brevity> h4t6QVXny+nF25XASq49kuZ8aWA0aTwU8VN5lC0qbSA2Zy6uX8jPmf/ecGNSQzIc 6iDIm76HbL7UKlDecSmr7WiR5hZ9bP/zKxmkNlTN1viqtInGl+zZa6U= -----END CERTIFICATE REQUEST-----
Kopier det id, du modtog i outputtet (fed skrift ovenfor), da det er nødvendigt for senere trin.
Du skal også formatere CSR (ved hjælp af VIM eller en hvilken som helst teksteditor såsom Notesblok). Den første linje skal være -----BEGIN CERTIFICATE REQUEST----- mens den sidste linje skal slutte med -----END CERTIFICATE REQUEST-----. Der må ikke være nogen foranstillede eller afsluttende mellemrum nogen steder.
Et eksempel på en formateret CSR:
-----BEGIN CERTIFICATE REQUEST----- MIIDJTCCAg0CAQAwezF5MAkGA1UEBhMCVVMwCwYDVQQKEwREZWxsMBAGA1UEBxMJ SG9wa2ludG9uMBEGA1UECxMKUG93ZXJTdG9yZTAUBgNVBAgTDU1hc3NhY2h1c2V0 <trimmed for brevity> h4t6QVXny+nF25XASq49kuZ8aWA0aTwU8VN5lC0qbSA2Zy6uX8jPmf/ecGNSQzIc 6iDIm76HbL7UKlDecSmr7WiR5hZ9bP/zKxmkNlTN1viqtInGl+zZa6U= -----END CERTIFICATE REQUEST-----
Gem din CSR i en fil med et sigende navn. For eksempel: powerstoreXY.csr
Trin 2c (valgfrit)
Hvis du er sikker på, at din CSR er korrekt formateret, kan du springe dette trin over.
Hvis du gerne vil bekræfte gyldigheden af den, kan du bruge OpenSSL-pakken af værktøjer til at bekræfte, at den kan læses, og at dataene inden for CSR-felterne ser korrekte ud. Hvis du f.eks. bruger værdierne i trin 2b, skal felterne med fed skrift i CSR afspejle, at:
$ openssl req -in powerstoreXY.csr -noout -text
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=US, O=Dell, L=Hopkinton, OU=PowerStore, ST=Massachusetts, CN=powerstoreXY.mycompany.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:af:cd:73:7a:d7:71:03:67:d6:f9:46:9f:aa:68:
<trimmed for brevity>
90:c4:68:44:71:bd:d7:64:65:81:36:90:2e:c2:15:
b8:f5
Exponent: 65537 (0x10001)
Attributes:
Requested Extensions:
X509v3 Subject Alternative Name:
DNS:powerstoreXY.mycompany.com, IP Address:aaa.bbb.ccc.ddd, IP Address:1111:2222:3333:4444:5555:6666:7777:8888
Signature Algorithm: sha256WithRSAEncryption
15:f6:08:8e:ab:f6:07:91:82:ed:45:f0:d9:4d:8c:f5:c6:e3:
<trimmed for brevity
16:7d:6c:ff:f3:2b:19:a4:36:54:cd:d6:f8:aa:b4:89:c6:97:
ec:d9:6b:a5
Hvis alt ser korrekt ud, skal du gå til næste trin.
Trin 3 - Indsendelse af CSR til en privat CA til underskrivelse
Dette trin varierer fra leverandør til leverandør. Målet her er at indsende din CSR til den udstedende certifikatmyndighed ved hjælp af leverandørens anbefalede procedurer for at modtage et signeret certifikat kodet som BASE64.
Trin 3a
Kontrollér, at det nyligt udstedte certifikat er BASE64-kodet. Sørg for, at filen starter med -----BEGIN CERTIFICATE----- og slutter med -----END CERTIFICATE----- og indeholder kodede data imellem.
$ cat powerstoreXY.cer -----BEGIN CERTIFICATE----- MIIGFjCCA/6gAwIBAgITdAAAAA4SiEpOgIXLggABAAAADjANBgkqhkiG9w0BAQsF <trimmed for brevity> 7NcBrSr0Ach8rC443vrqLSChaTZFt1TtYiSJJT+ZEL2F0/TG9BTXBbHKFTVFXgf9 l9dWpDkH6mq/fhgaMNT/vuMCUtD40fj81DE= -----END CERTIFICATE-----
Trin 3b
Bekræft, at det certifikat, du modtog, indeholder værdierne for de attributter, du anmodede om, da du genererede CSR, specifikt DNS- og IP-adresser i det alternative emnenavn. Afhængigt af de procedurer, der er involveret i certifikatmyndighedens fremstilling og signering af certifikatet, kan certifikatet indeholde dem eller ej.
$ openssl x509 -in powerstoreXY.cer -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
74:00:00:00:0e:12:88:4a:4e:80:85:cb:82:00:01:00:00:00:0e
Signature Algorithm: sha256WithRSAEncryption
Issuer: DC=com, DC=mycompany, CN=Issuing CA
Validity
Not Before: Nov 26 16:51:16 2021 GMT
Not After : Nov 26 16:51:16 2023 GMT
Subject: C=US, ST=Massachusetts, L=Hopkinton, O=Dell, OU=PowerStore, CN=powerstoreXY.mycompany.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:af:cd:73:7a:d7:71:03:67:d6:f9:46:9f:aa:68:
<trimmed for brevity>
90:c4:68:44:71:bd:d7:64:65:81:36:90:2e:c2:15:
b8:f5
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:powerstoreXY.mycompany.com, IP Address:aaa.bbb.ccc.ddd, IP Address:1111:2222:3333:4444:5555:6666:7777:8888
X509v3 Subject Key Identifier:
1C:19:5D:DF:B4:F0:9F:B7:7B:2B:4A:0E:09:B3:C6:43:3E:CF:4D:4C
X509v3 Authority Key Identifier:
keyid:25:D0:D5:01:27:75:BD:08:FF:E7:FF:02:6C:CE:17:46:86:50:DD:71
X509v3 CRL Distribution Points:
Full Name:
URI:http://pki.mycompany.com/pki/Issuing%20CA.crl
Authority Information Access:
CA Issuers - URI:http://pki.mycompany.com/pki/ca-iss.mycompany.com_Issuing%20CA.crt
1.3.6.1.4.1.311.20.2:
...W.e.b.S.e.r.v.e.r
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
Signature Algorithm: sha256WithRSAEncryption
99:d9:99:a7:7a:b9:4a:e8:e3:66:ed:56:1f:6f:bc:71:b8:07:
<trimmed for brevity>
97:d7:56:a4:39:07:ea:6a:bf:7e:18:1a:30:d4:ff:be:e3:02:
52:d0:f8:d1:f8:fc:d4:31
Hvis du ikke kan se DNS- og IP-attributter, som du har anmodet om i CSR, i dit certifikats alternative emnenavn X509v3 (eksempel med fed skrift ovenfor), skal du kontakte din CA-administrator for at løse dette.
Fortsæt IKKE videre, før du har bekræftet, at de påkrævede attributter findes i certifikatet.
Trin 3c
Dette trin omfatter opbygning af en komplet certifikatkæde i en enkelt BASE64-kodet fil, som skal indeholde dit PowerStore-certifikat plus certifikater for hvert nøglecenter i hierarkiet, der er involveret i signering af dit certifikat.
Brug af en hypotetisk Public Key Infrastructure (PKI), der består af følgende enheder:
Root CA > udstedende CA > Leaf
Hvor
- Root CA - er toppen af hierarkiet, og det underskriver og udsteder kun certifikater til de udstedende CA'er. Det er typisk aldrig involveret i signering af certifikater for slutpunkterne.
- Udstedelse af CA - det er det, der typisk udsteder certifikater til forskellige slutpunkter.
- Leaf - slutpunkterne, såsom arbejdsstationer, servere og så videre. Dit PowerStore-system falder ind under denne kategori.
Afhængigt af hvordan dit PowerStore-certifikat blev udstedt, indeholder den fil, du har fået tilbage, muligvis kun et enkelt certifikat til dit PowerStore-slutpunkt (blad), eller den kan indeholde hele kæden (blad + udstedelseCA + rootCA). Du kan ikke importere en fil, der kun indeholder et enkelt bladcertifikat, til PowerStore i de næste trin. Du skal oprette en komplet kæde (leaf + issuingCA + rootCA) som en enkelt BASE64-kodet PEM-fil, der indeholder alle tre certifikater (eller flere, hvis du har flere nøglecentre i kæden).
Hvis du ikke allerede har det, skal du hente BASE64-kodede certifikater til dit udstedende nøglecenter og rodnøglecenter og kombinere dem med PowerStores bladcertifikat i en enkelt PEM-fil:
$ cat powerstoreXY.cer issuingca.cer rootca.cer > combined.pem
Åbn filen combined.pem med en teksteditor, og fjern eventuelle afsluttende eller foranstillede mellemrum og tomme linjer. Desuden skal brødteksten i certifikaterne (data mellem BEGIN/END CERTIFICATE-tags) være en enkelt linjestreng.
Den resulterende combined.pem-fil skal ligne eksemplet nedenfor:
$ cat combined.pem -----BEGIN CERTIFICATE----- MIIGFjCCA/6gAwIBAgITdAAAAkiG9w0BAQs<trimmed for brevity><PowerStore leaf cert>7NcBrSr0Ach8rC443vrqLSChaTZF0fj81DE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIGXjCCBEagAwIBDANBgkqhkiG9w0BAQ0F<trimmed for brevity><Issuing CA cert>HU+TePFvwmGruno8fGI4iLyh5kWjnWW2SZVI4wWQ= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFCzCCAvOgAwIyoqhkiG9w0BAQ0FAuDAX<trimmed for brevity><Root CA cert>wRh/EXhVd32yvTxupm288LcH3UU3iGHx0tHieAGEkT0= -----END CERTIFICATE-----
Trin 4 – Import af signeret certifikatkæde
I dette sidste trin erstatter du det selvsignerede PowerStore-certifikat ved at importere hele kæden, der består af dit nye signerede certifikat og alle nøglecentre. Du skal bruge det certifikat-id, du oprettede i trin 2b.
Hvis du ikke har skrevet det ned, skal du køre følgende kommando for at få id'et igen:
$ pstcli -u admin -p <password> -d <cluster_ip> x509_certificate show # | id | type | service | is_current | is_valid ----+--------------------------------------+--------+------------------+------------+---------- 1 | 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd | Server | Management_HTTP | no | no 2 | 00907634-b4eb-446a-a381-aae685bae066 | Server | Management_HTTP | yes | yes 3 | c5f03cf7-fe1d-40bd-b6fb-7abba0c6026a | Client | Replication_HTTP | yes | yes 4 | 9d0ec275-3688-4ae2-922b-639e1cfb0b88 | Server | VASA_HTTP | yes | yes
Bemærk, at servicecertifikatet Management_HTTP, der IKKE er gyldigt og IKKE er aktuelt. I eksemplet ovenfor er id 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd det, du skal bruge.
Kør følgende kommando for at importere kæden:
$ pstcli -u admin -p <password> -d <cluster_id> x509_certificate -id <cert_id> set -is_current true -certificate '<contents_of_the_combined.pem_file>'
F.eks.:
pstcli -u admin -d self x509_certificate -id 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd set -is_current true -certificate $'-----BEGIN CERTIFICATE-----\n[...Single line PowerStore certificate content...]\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n[...Single line CA Certificate certificate content...] \n-----END CERTIFICATE-----'
Alternativt, når du bruger en linux-station med PSTCLI (såsom SSH på PowerStore), kan du bede BASH-tolken om at bruge alt mellem $' ' nøjagtigt som det er, inklusive formateringen. I dette tilfælde er det ikke nødvendigt at tilføje den "nye linje \n":
pstcli -u admin -d self x509_certificate -id 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd set -is_current true -certificate $'-----BEGIN CERTIFICATE-----
MIIGFjCCA/6gAwIBAgITdAAAAA4SiEpOgIXLggABAAAADjANBgkqhkiG9w0BAQsF<trimmed for brevity><PowerStore leaf cert>7NcBrSr0Ach8rC443vrqLSChaTZFt1TtYiSJJT+ZEL2F0/TG9BTXBbHKFTVFXgf9l9dWpDkH6mq/fhgaMNT/vuMCUtD40fj81DE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGXjCCBEagAwIBAgITQgAAAARkLTTf7tqFAQAAAAAABDANBgkqhkiG9w0BAQ0F<trimmed for brevity><Issuing CA cert>HU+TePFvwmGruno8o65kK+qWvvYG10PbMbIYxxm/zyofGI4iLyh5kWjnWW2SZVI4wWQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFCzCCAvOgAwIBAgIQad6TNg7Pqa5HsuYzLFAK5jANBgkqhkiG9w0BAQ0FADAX<trimmed for brevity><Root CA cert>wRh/EXhVd32yvTxOdBGBBENLQnD6U6HkA4FO/jVbXR2B793giBmi9w85+B7obgWPSTypIgA+LKG3nE0jf5AW5LnOV+gQDCOsSJlGpm288LcH3UU3iGHx0tHieAGEkT0=
-----END CERTIFICATE-----'
På dette tidspunkt skal du have det nye certifikat installeret og operationelt. Du skal lukke og genstarte din browser for at se det nye certifikat. Genoprettelse af forbindelse med PSTCLI giver dig også en advarsel om, at certifikataftrykket er ændret, hvilket er en indikator for, at det nye certifikat er blevet installeret korrekt.