Generování testovacích klíčů

Generování testovacích klíčů

Pro komunikaci s bránou, potřebujete mít k dispozici pár asymetrických RSA klíčů o délce 2048 bitů. Jde o podpisové klíče, které reprezentují vás jako obchodníka.

Privátní klíč si bezpečně uložte a používejte ho pro podepisování požadavků, které posíláte bráně. Privátní klíč nikdy nesdílejte s jinými stranami včetně Benefit Management, ani neposílejte veřejnými komunikačními kanály jako je např. e-mail.

Váš veřejný klíč musí mít k dispozici brána, která ho použije ke kontrole podpisů vašich požadavků.

Testovací klíče si můžete vygenerovat sami. Vygenerujte si určitě nový pár a ten používejte pouze k podepisování požadavků při komunikaci s platební bránou MúzaPay. Nepoužívejte stejné klíče zároveň k jiným účelům.

Způsobů, jak klíče vygenerovat, je mnoho. Některé příklady jsou zmíněné dále.

Webový generátor

Můžete použít webový generátor klíčů https://cryptotools.net/rsagen

Hodnotu veřejného klíče, který jste si vygenerovali, nasdílejte v rámci konfigurace vašeho e-shopu s administrátorem Benefit Management.

OpenSSL

Pokud máte ve vašem prostředí k dispozici OpenSSL knihovnu, můžete ji použít. Postupujte následovně.

  1. Vygenerujte váš pár. Privátní klíč si uložte do souboru.

Verze 1 a 2

$ openssl version OpenSSL 1.1.1f 31 Mar 2020 $ openssl genrsa > private.key Generating RSA private key, 2048 bit long modulus (2 primes) ....................................................................................+++++ ........................................+++++ e is 65537 (0x010001)

Verze 3

$ openssl genrsa --traditional 2048
  1. Uložte do souboru veřejný klíč

$ openssl rsa -in ./private.key -pubout > public.pem writing RSA key
  1. Soubor public.pem nebo jeho obsah nasdílejte v rámci konfigurace vašeho e-shopu s administrátorem Benefit Management.

Java

Vygenerujte pár. Veřejný klíč uložte do souboru.

try { // Generate RSA 2048-bit key pair java.security.KeyPairGenerator keyPairGenerator = java.security.KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); java.security.KeyPair keyPair = keyPairGenerator.generateKeyPair(); // Retrieve public and private keys from the key pair java.security.interfaces.RSAPublicKey publicKey = (java.security.interfaces.RSAPublicKey) keyPair.getPublic(); java.security.interfaces.RSAPrivateKey privateKey = (java.security.interfaces.RSAPrivateKey) keyPair.getPrivate(); // Convert public key to PEM format String publicKeyPEM = getPEM(publicKey); // Write public key to public.pem file try (java.io.FileWriter fileWriter = new java.io.FileWriter("public.pem")) { fileWriter.write(publicKeyPEM); } catch (java.io.IOException e) { e.printStackTrace(); } } catch (java.security.NoSuchAlgorithmException e) { e.printStackTrace(); } } // Converts RSAPublicKey to a PEM format private static String getPEM(java.security.interfaces.RSAPublicKey publicKey) { byte[] publicKeyBytes = publicKey.getEncoded(); String base64Encoded = java.util.Base64.getEncoder().encodeToString(publicKeyBytes); StringBuilder result = new StringBuilder(); result.append("-----BEGIN PUBLIC KEY-----\n"); int lineLength = 64; for (int i = 0; i < base64Encoded.length(); i += lineLength) { int endIndex = Math.min(i + lineLength, base64Encoded.length()); result.append(base64Encoded, i, endIndex).append("\n"); } result.append("-----END PUBLIC KEY-----\n"); return result.toString(); }

 

Soubor public.pem nebo jeho obsah nasdílejte v rámci konfigurace vašeho e-shopu s administrátorem Benefit Management.