Openssl не является внутренней или внешней командой windows

I am trying to execute the following command in command prompt . keytool -exportcert -alias androiddebugkey -keystore ".androiddebug.keystore" | openssl sha1 -bin...

Asked
9 years, 1 month ago

Viewed
115k times

I am trying to execute the following command in command prompt .

keytool -exportcert -alias androiddebugkey -keystore "<path-to-users-directory>.androiddebug.keystore" | openssl sha1 -binary | openssl base64

But the command prompt windows reports:

'openssl' is not recognized as internal or external command.

What ca I do to execute this command in command prompt window?

jww's user avatar

jww

95k88 gold badges395 silver badges860 bronze badges

asked Dec 30, 2013 at 11:23

The error you saw means there’s no such program in your %PATH% (external command) and it’s also not a built-in shell command (internal command).

Install OpenSSL on your machine. You will also need to check that its installed location is in your %PATH%. By default it probably won’t be. As an example, suppose OpenSSL is installed at c:OpenSSL-Win32. The openssl binary is probably located at c:OpenSSL-Win32binopenssl.exe. So you path needs to include c:OpenSSL-Win32bin.

Sometimes OpenSSL cannot find its configuration file on Windows. For that, see OpenSSL and error in reading openssl.conf file.


Another option is to use the full path in the command:

keytool -exportcert -alias androiddebugkey -keystore "<path-to-users-directory>.androiddebug.keystore" | ^
  c:OpenSSL-Win32binopenssl.exe sha1 -binary | c:OpenSSL-Win32binopenssl.exe base64

However, this still suffers the OpenSSL configuration file problem detailed at OpenSSL and error in reading openssl.conf file.

jww's user avatar

jww

95k88 gold badges395 silver badges860 bronze badges

answered Dec 30, 2013 at 11:33

steveayre's user avatar

steveayresteveayre

1,03511 silver badges8 bronze badges

3

answered Dec 30, 2013 at 11:37

osimer pothe's user avatar

osimer potheosimer pothe

2,79714 gold badges51 silver badges92 bronze badges

4

Just you need to Add OpenSSL bin path (ex: C:Program FilesOpenSSL-Win64bin) to the PATH system variable as shown below:

enter image description here

answered Jun 2, 2019 at 10:06

Ahmed Mihoub's user avatar

1

answered Apr 17, 2019 at 7:22

tscpp's user avatar

tscpptscpp

1,2262 gold badges11 silver badges34 bronze badges

Install openssl on your Windows machine.

answered Dec 30, 2013 at 11:29

KCShelby's user avatar

I wish to generate an application signature for my app which will later be integrated with Facebook. In one of Facebook’s tutorials, I found this command:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

In the tutorial, it says that by running this cmd, my process of generating the signature will start.

However, this command gives an error:

openssl is not recognized as an internal or external command

How can I get rid of this?

Zachary Espiritu's user avatar

asked Aug 10, 2012 at 6:04

Khurram W. Malik's user avatar

Khurram W. MalikKhurram W. Malik

2,5702 gold badges18 silver badges27 bronze badges

6

Well at the place of OpenSSL … you have to put actually the path to your OpenSSL folder that you have downloaded. Your actual command should look like this:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:Usersabcopensslbinopenssl.exe" sha1 -binary | "C:Usersabcopensslbinopenssl.exe" base64

Remember, the path that you will enter will be the path where you have installed the OpenSSL.

Edit:

you can download OpenSSL for windows 32 and 64 bit from the respective links below:

OpenSSL for 64 Bits

OpenSSL for 32 Bits

digito_evo's user avatar

digito_evo

2,9252 gold badges12 silver badges35 bronze badges

answered Aug 10, 2012 at 6:15

Usama Sarwar's user avatar

Usama SarwarUsama Sarwar

8,8207 gold badges52 silver badges79 bronze badges

13

Please follow these step, I hope your key working properly:

  1. Step 1 You will need OpenSSL. You can download the binary from openssl-for-windows project on Google Code.

  2. Step 2 Unzip the folder, then copy the path to the bin folder to the clipboard.

    For example, if the file is unzipped to the location C:Usersgauravopenssl-0.9.8k_WIN32, then copy the path C:Usersgauravopenssl-0.9.8k_WIN32bin.

  3. Step 3 Add the path to your system environment path. After your PATH environment variable is set, open the cmd and type this command:

    C:>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64
    

    Type your password when prompted. If the command works, then you will be shown a key.

nhahtdh's user avatar

nhahtdh

55.5k15 gold badges125 silver badges162 bronze badges

answered Apr 28, 2013 at 14:07

GAURAV KUMAR GUPTA's user avatar

2

Use the entire path, like this:

exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:opensslbinopenssl.exe" sha1 -binary | "C:opensslbinop
enssl.exe" base64

It worked for me.

answered Mar 29, 2013 at 3:20

Kaloyan Drenski's user avatar

Kaloyan DrenskiKaloyan Drenski

8901 gold badge12 silver badges18 bronze badges

This is worked for me successfully.

«C:Program FilesJavajdk1.6.0_26binkeytool.exe» -exportcert -alias sociallisting -keystore «D:keystoreSocialListing» | «C:cygwinbinopenssl.exe» sha1 -binary | «C:cygwinbinopenssl.exe» base64

Be careful with below path :

  • «C:Program FilesJavajdk1.6.0_26binkeytool.exe»
  • «D:keystoreSocialListing» or it can be like this «C:UsersShaon.androiddebug.keystore«
  • «C:cygwinbinopenssl.exe» or can be like this C:Usersopensslbinopenssl.exe

If command successfully work then you will see this command :

Enter keystore password : typeyourpassword

Encryptedhashkey**

answered Sep 8, 2012 at 2:07

Siddiq Abu Bakkar's user avatar

it’s late answer but it will help to lazy people like me.. add this code to your Application class, there is no need to download openssl and no need to set the path.. only need is just copy this code.. and keyHash will generated in log.

import com.facebook.FacebookSdk;
public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
        printKeyHash();
    }

    private void printKeyHash() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.i("KeyHash:",
                        Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            Log.e("jk", "Exception(NameNotFoundException) : " + e);
        } catch (NoSuchAlgorithmException e) {
            Log.e("mkm", "Exception(NoSuchAlgorithmException) : " + e);
        }
    }
}

and do not forget add MyApplication class in manifest:

<application
        android:name=".MyApplication"
</application>

answered Aug 5, 2016 at 6:06

Sagar Chavada's user avatar

Sagar ChavadaSagar Chavada

5,0787 gold badges39 silver badges65 bronze badges

3

First navigate to your Java/jre/bin folder in cmd
cd c:Program Files (x86)Javajre7bin

Then use : [change debug.keystore path to the correct location on your system]
install openssl (for windows 32 or 64 as per your needs at c:openssl )

keytool -exportcert -alias androiddebugkey -keystore "C:Usersvibhor.androiddebug.keystore" | "c:opensslbinopenssl.exe" sha1 -binary | "c:opensslbinopenssl.exe" base64

So the whole command goes like this : [prompts to enter keystore password on execution ]

c:Program Files (x86)Javajre7bin>keytool -exportcert -alias androiddebugkey
-keystore "C:Usersvibhor.androiddebug.keystore" | "c:opensslbinopenssl.ex
e" sha1 -binary | "c:opensslbinopenssl.exe" base64
Enter keystore password:

answered Aug 12, 2014 at 6:08

Vibhor Kashyap's user avatar

0

Steps to create Hash Key. 
1: Download openssl from Openssl for Windows . I downloaded the Win64 version 
2:Unzip and copy all the files in the bin folder including openssl.exe(All file of bin folder) 
3:Goto to the folder where you installed JDK for me it’s C:Program FilesJavajdk1.8.0_05bin 
4:Paste all the files you copied from Openssl’s bin folder to the Jdk folder. 

then go C:Program FilesJavajdk1.8.0_05bin and press shift key and right click and open cmd

C:Program FilesJavajdk1.8.0_05bin>//cmd path 

that is for Sha1 past this
keytool -exportcert -alias androiddebugkey -keystore «C:UserABC.android.keystore» | openssl sha1 -binary | openssl base64
//and ABC is system name put own system name

answered May 13, 2015 at 18:50

sandhu's user avatar

sandhusandhu

2954 silver badges4 bronze badges

1

I used this code:

This is worked for me successfully.

"C:Program FilesJavajdk1.6.0_26binkeytool.exe" -exportcert -alias sociallisting -
keystore "D:keystoreSocialListing" | "C:cygwinbinopenssl.exe" sha1 -binary | 
"C:cygwinbinopenssl.exe" base64

Baby Groot's user avatar

Baby Groot

4,62739 gold badges53 silver badges71 bronze badges

answered Apr 9, 2013 at 8:51

Nguyễn Kim's user avatar

Downloads and Unzip

You can download openssl for windows 32 and 64 bit from the respective links below:

https://code.google.com/archive/p/openssl-for-windows/downloads

OpenSSL for 64 Bits OpenSSL for 32 Bits

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | **"C:Userskeshav.geraopenssl-0.9.8k_X64bin**openssl.exe" sha1 -binary | **"C:Userskeshav.geraopenssl-0.9.8k_X64bin**openssl.exe" base64

Important change our path Here as well as install open ssl in your system

It’s Working No Doubt

C:Userskeshav.gera>keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | "C:Userskeshav.geraopenssl-0.9.8k_X64binopenssl.exe" sha1 -binary | "C:Userskeshav.geraopenssl-0.9.8k_X64binopenssl.exe" base64

Enter keystore password: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

=============================================================

using Manually through Coding

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


private void PrintHashKey() {

        try {
            PackageInfo info = getPackageManager().getPackageInfo("**com.keshav.patanjalidemo  Your Package Name Here**", PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");        
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

    }

Draken's user avatar

Draken

3,16913 gold badges35 silver badges53 bronze badges

answered May 26, 2017 at 11:02

Keshav Gera's user avatar

Keshav GeraKeshav Gera

10.5k1 gold badge74 silver badges52 bronze badges

IDK if this is relevant here, but if you have Git Installed, you can find the openssl in the «C:Program FilesGitusrbin» and that location you can use in the Terminal for your Keystore Command.

oh and yeah the command:

keytool -exportcert -alias keystore -keystore «C:UsersYOURPATH/filename.jks» | «C:Program FilesGitusrbinopenssl» sha1 -binary | «C:Program FilesGitusrbinopenssl» base64

answered Nov 30, 2020 at 10:03

fuse's user avatar

fusefuse

618 bronze badges

1

use this worked for me. please change your Path

C:Program FilesJavajre7bin keytool -exportcert -alias androiddebugkey -keystore «C:UsersAce.androiddebug.keystore» | «C:opensslbin

openssl.exe» sha1 -binary | «C:opensslbinopenssl.exe» base64

answered Nov 23, 2013 at 11:58

Azahar's user avatar

AzaharAzahar

3965 silver badges14 bronze badges

1

go to bin folder path in cmd and then run following command

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | openssl sha1 -binary | openssl base64

you will get your key hash

answered Sep 30, 2014 at 6:08

DjP's user avatar

DjPDjP

4,4472 gold badges23 silver badges34 bronze badges

for windows users download open ssl from google’s code repository https://code.google.com/p/openssl-for-windows/downloads/list

After the download, extract the contents to a folder preferably in your c: drive.

Then update your PATH environment variable so you can use the .exe from any location in your command line.

[windows 8] To update your PATH environment variable, click my computer->properties->Advanced System Settings.

Click the Advanced Tab and click the ‘Environment Variable’ button at the bottom of the dialog then select the Path entry from the ‘System Variables’ Section by clicking edit.

Paste the path to the bin folder of the extracted openssl download and click ok.

You will need to close and open and command prompt you may have previously launched so that you can load the updated path settings.

Now run this command:

keytool -exportcert -alias androiddebugkey -keystore «C:UsersOladipo.androiddebug.keystore» | openssl sha1 -binary | openssl base64

You should see the developer key.

answered Nov 20, 2014 at 19:44

Oladipo Olasemo's user avatar

This works for me:

C:Usersexample>keytool -exportcert -alias androiddebugkey -keystore 
"C:Usersexample.android" | "C:opensslbinopenssl.exe" sha1 -binary 
| "C:opensslbinoenssl.exe" base64

Zachary Espiritu's user avatar

answered Sep 9, 2017 at 5:05

Manish's user avatar

For those who arrive lost as I was now, follow Usama Sarwar response
but if:

«your_openssl_path/bin/openssl.exe»

doesn’t work, try it

your_openssl_path/bin/openssl.exe.

Without the quotes.

«c:opensslbinopenssl.exe» => Didn’t work for me

c:opensslbinopenssl.exe => Worked for me

answered Jul 3, 2021 at 21:32

Marcos Silva's user avatar

I’ve got the same issue today, solved it by following this video (the SSL installation) — https://www.youtube.com/watch?v=PoAc1lpfK8I&ab_channel=GleyGames

Then, i’ve took Usamas command, and run it (after changing the paths in the command), I’ve run it FROM inside the bin folder inside the java installation, using CMD.

full command that worked for me:

(from inside C:Program FilesJavajdk-11.0.12bin) :

keytool -exportcert -alias androiddebugkey -keystore "C:UsersUSERNAME.androiddebug.keystore" | "C:Program FilesOpenSSL-Win64binopenssl" sha1 -binary | "C:Program FilesOpenSSL-Win64binopenssl" base64

answered Nov 29, 2021 at 16:23

Slava Bugz's user avatar

Slava BugzSlava Bugz

3062 silver badges17 bronze badges

Step 1

Download SSL for windows at https://code.google.com/archive/p/openssl-for-windows/downloads.

Step 2

Unzip the folder to OpenSSL and paste it to «C:Program Files«.

Step 3

Add «C:Program FilesOpenSSLbin» to your environnement variables (Edit the system environnement variables > Environnement variables > Path > New). It will make openssl work in the terminal.

Step 4

Add «C:Program FilesAndroidAndroid Studiojrebin» to your environnement variables. It will make keytool work in the terminal.

Step 5

Open a terminal and execute :

keytool -exportcert -alias androiddebugkey -keystore .androiddebug.keystore | openssl sha1 -binary | openssl base64

The password should be android.

answered Apr 5, 2022 at 6:14

Julian Paul's user avatar

use this

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:UsersDKopenssl-0.9.8d_X64binopenssl.exe" sha1 -binary | "C:UsersDKopenssl-0.9.8d_X64binopenssl.exe" base64

answered Apr 7, 2022 at 11:34

Deepak Singh's user avatar

Easy solution if you have git installed locally.
you can just open git bash, change directory where you want your keys will be generated and then run your command.
it will work because git installs open ssl exe by default and your don’t need to set path to your ssl exe manually each time you want to run it.
it works for me and I hope it helps.

answered Jun 29, 2022 at 1:27

Mr.B's user avatar

Mr.BMr.B

3,3651 gold badge26 silver badges39 bronze badges

If you are on windows and if you have git installed then you can run the open ssl command using GIT Bash.

  1. go to the directory where you want to store the key

  2. Right-click and open the GIT Bash

  3. Here you can run any openssl command. e.g.

    openssl enc -aes-128-cbc -k test -P -md sha1

answered Jun 29, 2022 at 10:18

HybrisHelp's user avatar

HybrisHelpHybrisHelp

5,3882 gold badges26 silver badges63 bronze badges

It is not guaranteed that generating hashkey with this single openssl method will work.
If it does not work for me. But thanks for giving me a direction to solve my issue.

Guaranteed Solution :
You need to break the whole command in separate commands and have to write output of every execution in file.

You can take the help from the following link :

http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1

Enjoy :)

answered May 2, 2013 at 10:11

Nirav Shah's user avatar

Nirav ShahNirav Shah

2,0545 gold badges24 silver badges34 bronze badges

   VBMADD

05.12.08 — 16:32

Привет братьям по разуму!

Установил OpenVPN и по инструкции стал создавать ca.key:

1. vars.bat

2. clean-all.bat

3. build-ca.bat

В результате выполнения должно создаться 2 файла ca.key и ca.crt

Не удается создать ca.key и ca.crt

В build-ca.bat не запускается строка

openssl req -days 3650 -nodes -new -x509 -keyout %KEY_DIR%ca.key -out %KEY_DIR%ca.crt -config %KEY_CONFIG%

Бьюся уже полдня так и нечего не выходит…

Может подскажет хто де копать то дольше.

Заранее всем откликнувшимся спасибо!

   VBMADD

1 — 05.12.08 — 16:34

Может вместо %KEY_DIR% и %KEY_CONFIG% указать конкретные значения, тогда какие…?

   Chieftain

2 — 05.12.08 — 17:04

vars.bat  отредактируй

   Chieftain

3 — 05.12.08 — 17:06

   MAG

4 — 05.12.08 — 17:08

Редактируем vars.bat

Изменяем пути:

— set HOME=c:OpenVPNeasy-rsa

— set KEY_DIR=c:OpenVPNssl

Кроме того, можем изменить длину ключа

— KEY_SIZE на значение 2048

и значения для некоторых полей для будущих сертификатов:

— set KEY_COUNTRY=RU

— set KEY_PROVINCE=Moscow

— set KEY_CITY=Moscow

— set KEY_ORG=MyCompany

— set KEY_EMAIL=admin@domain.ru

ВАЖНО!

— поле Organization Name (KEY_ORG) должно совпадать с тем, что будет указано при генерации сертификата центра сертификации (ca.crt).

   MAG

5 — 05.12.08 — 17:09

c:OpenVPN по умолчанию равно C:Progra~1OpenVPN

   MAG

6 — 05.12.08 — 17:10

   VBMADD

7 — 05.12.08 — 17:13

Спасибо за инфо, буду ща разбираться…

   VBMADD

8 — 05.12.08 — 21:09

(6)Фсё делаю как в ссылке, тока вместо 2-х файлов проскакивает какое то сообщение, начало которого не видно, а окончание — распечатка ключей к openssl как мне кажетца.

Чё делать воще не знаю, ААА…

Подбрось ещё каку нит идею!!!

   VBMADD

9 — 05.12.08 — 21:33

(2) vars.bat — отредактировал, все как в ссылке делаю, ан результата НЕТ!!!

Може чета глобально не так делаю,…?

Не генерятся ca.key и ca.crt и на этом все встало.

как хоть бы увидеть сообщение после запуска build-ca.bat, а то видать толька концовку сообщения с описанием ключей!!!

   VBMADD

10 — 05.12.08 — 21:47

Ну подскажите кто нибудь, чтоб с места хоть стронуться!!!!

   syktyk

11 — 05.12.08 — 21:52

Extract all zip’d files to the OpenVPN home directory,

including the openssl.cnf file from the top-level

«easy-rsa» directory.

First run init-config.bat

Next, edit vars.bat to adapt it to your environment, and

create the directory that will hold your key files.

To generate TLS keys:

Create new empty index and serial files (once only)

1. vars

2. clean-all

Build a CA key (once only)

1. vars

2. build-ca

Build a DH file (for server side, once only)

1. vars

2. build-dh

Build a private key/certficate for the openvpn server

1. vars

2. build-key-server <machine-name>

Build key files in PEM format (for each client machine)

1. vars

2. build-key <machine-name>

  (use <machine name> for specific name within script)

or

Build key files in PKCS #12 format (for each client machine)

1. vars

2. build-key-pkcs12 <machine-name>

  (use <machine name> for specific name within script)

To revoke a TLS certificate and generate a CRL file:

1. vars

2. revoke-full <machine-name>

3. verify last line of output confirms revokation

4. copy crl.pem to server directory and ensure config file uses «crl-verify <crl filename>»

Че я сделал неправильно?

   MAG

12 — 05.12.08 — 21:53

Могу посоветовать удалить OpenVPN, установить все с нуля, дальше делать все как написано в статье. Там все подробно и абсолютно верно написано.

   syktyk

13 — 05.12.08 — 21:54

Года три работает…

   VBMADD

14 — 05.12.08 — 21:56

отредактировал build-ca.bat

добавил создание переменных в сам батник

===================================

@echo on

set HOME=C:OpenVPNeasy-rsa

set KEY_CONFIG=openssl.cnf

set KEY_DIR=C:OpenVPNSSL

set KEY_SIZE=1024

set KEY_COUNTRY=RU

set KEY_PROVINCE=SPb

set KEY_CITY=St-SPb

set KEY_ORG=Balcas

set KEY_EMAIL=v_b_m@mail.ru

cd %HOME%

rem build a cert authority valid for ten years, starting now

openssl req -days 3650 -nodes -new -x509 -keyout %KEY_DIR%ca.key -out %KEY_DIR%ca.crt -config %KEY_CONFIG%

==========================================

сообщает, что «openssl» не является внутренней или внешней командой, исполняемой программой или пакетным файлом…

   VBMADD

15 — 05.12.08 — 21:58

(12) Уже три раза делеал uninstall.

Какой то замкнутый круг, или туплю по черному…

   MAG

16 — 05.12.08 — 21:59

Зауск происходит с каталога easy-rsa?

   syktyk

17 — 05.12.08 — 22:00

Посмотри, где у тя лежит openssl.exe

   quest

18 — 05.12.08 — 22:01

путь пропиши. до опенссл

   syktyk

19 — 05.12.08 — 22:02

..binopenssl

   VBMADD

20 — 05.12.08 — 22:16

(19) Гениально !!!

сдвинулось все с места

   Ковычки

21 — 05.12.08 — 22:18

а интересно зачем опенвпн нужен ?

   VBMADD

22 — 05.12.08 — 23:50

Запустил службу «OpenVPN service»

В журнале «openvpn-server.log»

=================================================================================

Fri Dec 05 23:38:17 2008 OpenVPN 2.1_rc15 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Nov 19 2008

Fri Dec 05 23:38:17 2008 NOTE: OpenVPN 2.1 requires ‘—script-security 2’ or higher to call user-defined scripts or executables

Fri Dec 05 23:38:17 2008 Diffie-Hellman initialized with 1024 bit key

Fri Dec 05 23:38:17 2008 Cannot load certificate file C:OpenVPNsslServerVPN.crt: error:0906D06C:PEM routines:PEM_read_bio:no start line: error:140AD009:SSL routines:SSL_CTX_use_certificate_file:PEM lib

Fri Dec 05 23:38:17 2008 Exiting

=================================================================================

и крестик на сетевом соединении не погас…

Где теперь копать?

   VBMADD

23 — 05.12.08 — 23:54

Посмотрел файл ServerVPN.crt

а там пусто…

   VBMADD

24 — 05.12.08 — 23:56

Чё, все заново делать теперь, или как то можно исправить ситуёвину?

   hd1

25 — 06.12.08 — 18:54

(14) не нужно его редактировать, если OpenVPN по-умолчанию установлено (C:Program FilesOpenVPN), (24) лучше все заново и аккуратно, редактируем только vars.bat

   VBMADD

26 — 06.12.08 — 23:04

(25) Однако пока не добавил установку переменных в батник ничего не получалось

   YellowRabbit

27 — 08.12.08 — 03:40

(26) Может ошибаюсь, но почему файлик должен быть непустой?  В приведённом (14) батнике я не вижу создания ключа собственно сервера:)

   VBMADD

28 — 08.12.08 — 08:29

(27)Я так полагаю, что файл сертификата сервера не может быть пустой!

   YellowRabbit

29 — 08.12.08 — 08:47

Ну дык его же сделать надо! двумя командами, я так полагаю, вроде этих:



openssl req -days 3650 -nodes -new -keyout ServerVPN.key -out ServerVPN.csr -extensions server -config $KEY_CONFIG

openssl ca -days 3650 -out ServerVPN.crt -in ServerVPN.csr -extensions server -config $KEY_CONFIG

   hd1

30 — 08.12.08 — 11:41

(26) вы понимаете для чего сделан файл vars.bat?

   Chieftain

31 — 08.12.08 — 12:53

(28) http://www.wincity.ru/index.php?showtopic=13180# погляди 20 пост, там достаточно подробно расписано что и как делать

  

VBMADD

32 — 08.12.08 — 16:43

(30) Да

(31) Спасибо за ссылку

Я хочу создать подпись приложения для своего приложения, которое позже будет интегрировано с Facebook. В одном из руководств Facebook я нашел эту команду:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

В учебнике говорится, что при запуске этого cmd начнется мой процесс создания подписи.

Однако эта команда выдает ошибку:

openssl is not recognized as an internal or external command

Как я могу избавиться от этого?

20 ответы

Ну, вместо OpenSSL… вы должны указать путь к вашей папке OpenSSL, которую вы скачали. Ваша фактическая команда должна выглядеть так:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:Usersabcopensslbinopenssl.exe" sha1 -binary | "C:Usersabcopensslbinopenssl.exe" base64

Помните, что путь, который вы укажете, будет путем, по которому вы установили OpenSSL.

Редактировать:

вы можете скачать OpenSSL для Windows 32 и 64 бит по соответствующим ссылкам ниже:

OpenSSL для 64 бит

OpenSSL для 32 бит

Создан 27 янв.

Пожалуйста, выполните этот шаг, я надеюсь, что ваш ключ работает правильно:

  1. Шаг 1 Вам понадобится OpenSSL. Вы можете скачать бинарник с openssl для окон проект на Google Code.

  2. Шаг 2 Разархивируйте папку, затем скопируйте путь к bin папку в буфер обмена.

    Например, если файл распакован в папку C:Usersgauravopenssl-0.9.8k_WIN32, затем скопируйте путь C:Usersgauravopenssl-0.9.8k_WIN32bin.

  3. Шаг 3 Добавьте путь к пути вашей системной среды. После вашего PATH установлена ​​переменная среды, откройте cmd и введите эту команду:

    C:>keytool -exportcert -alias androiddebugkey -keystore [path to debug.keystore] | openssl sha1 -binary | openssl base64
    

    Введите пароль при появлении запроса. Если команда сработает, то вам будет показан ключ.

ответ дан 28 апр.

IDK, если это уместно здесь, но если у вас установлен Git, вы можете найти openssl в «C:Program FilesGitusrbin» и это место, которое вы можете использовать в терминале для своей команды хранилища ключей.

ну и команда:

keytool -exportcert -alias keystore -keystore «C:UsersВАШ ПУТЬ/имя файла.jks» | «C:Program FilesGitusrbinopenssl» sha1 -binary | «C:Program FilesGitusrbinopenssl» base64

Создан 30 ноя.

Используйте весь путь, например:

exportcert -alias androiddebugkey -keystore ~/.android
/debug.keystore | "C:opensslbinopenssl.exe" sha1 -binary | "C:opensslbinop
enssl.exe" base64

Он работал для меня.

ответ дан 29 мар ’13, в 03:03

Steps to create Hash Key. 
1: Download openssl from Openssl for Windows . I downloaded the Win64 version 
2:Unzip and copy all the files in the bin folder including openssl.exe(All file of bin folder) 
3:Goto to the folder where you installed JDK for me it’s C:Program FilesJavajdk1.8.0_05bin 
4:Paste all the files you copied from Openssl’s bin folder to the Jdk folder. 

затем перейдите C:Program FilesJavajdk1.8.0_05bin и нажмите клавишу Shift, щелкните правой кнопкой мыши и откройте cmd

C:Program FilesJavajdk1.8.0_05bin>//cmd path 

это для Sha1 мимо этого
keytool -exportcert -alias androiddebugkey -keystore «C:UserABC.android.keystore» | openssl sha1-binary | база 64 OpenSSL
// и ABC — это имя системы, введите собственное имя системы

ответ дан 13 мая ’15, 20:05

Скачиваем и распаковываем

Вы можете скачать openssl для Windows 32 и 64 бит по соответствующим ссылкам ниже:

https://code.google.com/archive/p/openssl-for-windows/downloads

OpenSSL для 64-битной версии OpenSSL для 32-битной версии

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | **"C:Userskeshav.geraopenssl-0.9.8k_X64bin**openssl.exe" sha1 -binary | **"C:Userskeshav.geraopenssl-0.9.8k_X64bin**openssl.exe" base64

Важнo изменить наш путь здесь, а также установить открытый ssl в вашей системе

Работает без сомнения

C:Userskeshav.gera>keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | "C:Userskeshav.geraopenssl-0.9.8k_X64binopenssl.exe" sha1 -binary | "C:Userskeshav.geraopenssl-0.9.8k_X64binopenssl.exe" base64

Введите пароль хранилища ключей: android

**ZrRtxw36xWNYL+h3aJdcCeQQxi0=**

================================================== ===========

используя вручную через кодирование

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


private void PrintHashKey() {

        try {
            PackageInfo info = getPackageManager().getPackageInfo("**com.keshav.patanjalidemo  Your Package Name Here**", PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");        
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

    }

ответ дан 26 мая ’17, 12:05

это поздний ответ, но он поможет ленивым людям, таким как я.. добавьте этот код в свой класс приложения, нет необходимости загружать openssl и не нужно устанавливать путь.. нужно просто скопировать этот код.. и keyHash будет генерируется в лог.

import com.facebook.FacebookSdk;
public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
        printKeyHash();
    }

    private void printKeyHash() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.i("KeyHash:",
                        Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {
            Log.e("jk", "Exception(NameNotFoundException) : " + e);
        } catch (NoSuchAlgorithmException e) {
            Log.e("mkm", "Exception(NoSuchAlgorithmException) : " + e);
        }
    }
}

и не забудьте добавить класс MyApplication в манифест:

<application
        android:name=".MyApplication"
</application>

Создан 03 ноя.

Это сработало для меня успешно.

«C:Program FilesJavajdk1.6.0_26binkeytool.exe» -exportcert -alias sociallisting -keystore «D:keystoreSocialListing» | «C:cygwinbinopenssl.exe» sha1 -binary | «C:cygwinbinopenssl.exe» base64

Будьте осторожны с указанным ниже путем:

  • «C:Program FilesJavajdk1.6.0_26binkeytool.exe»
  • «D:keystoreSocialListing» или можно так»C:UsersShaon.androiddebug.keystore«
  • «C:cygwinbinopenssl.exe» или может быть так C:Usersopensslbinopenssl.exe

Если команда успешно работает, вы увидите эту команду:

Введите пароль хранилища ключей: typeyourpassword

Зашифрованный хэш-ключ**

Создан 08 сен.

Сначала перейдите в папку Java/jre/bin в cmd cd c:Program Files (x86)Javajre7bin

Затем используйте: [измените путь debug.keystore на правильное место в вашей системе] установите openssl (для Windows 32 или 64 в соответствии с вашими потребностями в c:openssl )

keytool -exportcert -alias androiddebugkey -keystore "C:Usersvibhor.androiddebug.keystore" | "c:opensslbinopenssl.exe" sha1 -binary | "c:opensslbinopenssl.exe" base64

Таким образом, вся команда выглядит так: [при выполнении предлагается ввести пароль хранилища ключей]

c:Program Files (x86)Javajre7bin>keytool -exportcert -alias androiddebugkey
-keystore "C:Usersvibhor.androiddebug.keystore" | "c:opensslbinopenssl.ex
e" sha1 -binary | "c:opensslbinopenssl.exe" base64
Enter keystore password:

ответ дан 12 авг.

используйте это сработало для меня. пожалуйста, измените свой путь

C:Program FilesJavajre7bin keytool -exportcert -alias androiddebugkey -keystore «C:UsersAce.androiddebug.keystore» | «C:opensslbin

openssl.exe» sha1 -binary | «C:opensslbinopenssl.exe» base64

Создан 23 ноя.

Я использовал этот код:

Это сработало для меня успешно.

"C:Program FilesJavajdk1.6.0_26binkeytool.exe" -exportcert -alias sociallisting -
keystore "D:keystoreSocialListing" | "C:cygwinbinopenssl.exe" sha1 -binary | 
"C:cygwinbinopenssl.exe" base64

ответ дан 09 апр.

Создан 08 ноя.

перейдите к пути к папке bin в cmd, а затем выполните следующую команду

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | openssl sha1 -binary | openssl base64

вы получите свой ключевой хэш

Создан 30 сен.

для пользователей Windows загрузите открытый ssl из репозитория кода Google https://code.google.com/p/openssl-for-windows/downloads/list

После загрузки извлеките содержимое в папку, желательно на диске C:.

Затем обновите переменную среды PATH, чтобы вы могли использовать .exe из любого места в вашей командной строке.

[Windows 8] Чтобы обновить переменную среды PATH, щелкните Мой компьютер->Свойства->Дополнительные параметры системы.

Перейдите на вкладку «Дополнительно» и нажмите кнопку «Переменная среды» в нижней части диалогового окна, затем выберите запись «Путь» в разделе «Системные переменные», нажав «Изменить».

Вставьте путь к папке bin извлеченной загрузки openssl и нажмите «ОК».

Вам нужно будет закрыть и открыть командную строку, которую вы, возможно, ранее запускали, чтобы вы могли загрузить обновленные настройки пути.

Теперь запустите эту команду:

keytool -exportcert -alias androiddebugkey -keystore «C:UsersOladipo.androiddebug.keystore» | openssl sha1-binary | база 64 OpenSSL

Вы должны увидеть ключ разработчика.

Создан 20 ноя.

Это работает для меня:

C:Usersexample>keytool -exportcert -alias androiddebugkey -keystore 
"C:Usersexample.android" | "C:opensslbinopenssl.exe" sha1 -binary 
| "C:opensslbinoenssl.exe" base64

Создан 09 сен.

Для тех, кто прибывает потерянным, как я сейчас, следуйте ответу Усамы Сарвара, но если:

«ваш_openssl_path/bin/openssl.exe»

не работает, попробуй

ваш_openssl_path/bin/openssl.exe.

Без кавычек.

«c:opensslbinopenssl.exe» => У меня не работает

c:opensslbinopenssl.exe => У меня сработало

Создан 03 июля ’21, 22:07

Сегодня у меня такая же проблема, я решил ее, следуя этому видео (установка SSL) — https://www.youtube.com/watch?v=PoAc1lpfK8I&ab_channel=GleyGames

Затем я взял команду Usamas и запустил ее (после изменения путей в команде), я запустил ее ИЗ внутри папки bin внутри установки java, используя CMD.

полная команда, которая работала для меня:

(изнутри C:Program FilesJavajdk-11.0.12bin) :

keytool -exportcert -alias androiddebugkey -keystore "C:UsersUSERNAME.androiddebug.keystore" | "C:Program FilesOpenSSL-Win64binopenssl" sha1 -binary | "C:Program FilesOpenSSL-Win64binopenssl" base64

Создан 29 ноя.

Шаг 1

Загрузите SSL для Windows по адресу https://code.google.com/archive/p/openssl-for-windows/downloads.

Шаг 2

Разархивируйте папку в OpenSSL и вставьте в «C: Program Files«.

Шаг 3

Добавлять «C:Program FilesOpenSSLbin» в переменные среды (отредактируйте системные переменные среды > Переменные среды > Путь > Создать). Это заставит openssl работать в терминале.

Шаг 4

Добавлять «C:Program FilesAndroidAndroid Studiojrebin» к вашим переменным среды. Это заставит keytool работать в терминале.

Шаг 5

Откройте терминал и выполните:

keytool -exportcert -alias androiddebugkey -keystore .androiddebug.keystore | openssl sha1 -binary | openssl base64

Пароль должен быть андроид.

ответ дан 05 апр.

использовать это

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:UsersDKopenssl-0.9.8d_X64binopenssl.exe" sha1 -binary | "C:UsersDKopenssl-0.9.8d_X64binopenssl.exe" base64

ответ дан 07 апр.

Не гарантируется, что генерация хэш-ключа с помощью этого единственного метода openssl будет работать. Если это не работает для меня. Но спасибо, что дали мне направление, чтобы решить мою проблему.

Гарантированное решение: вам нужно разбить всю команду на отдельные команды и записывать вывод каждого выполнения в файл.

Вы можете получить помощь по следующей ссылке:

http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1

Наслаждайтесь :)

ответ дан 02 мая ’13, 11:05

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

java
android
facebook-android-sdk
keytool

or задайте свой вопрос.

В роутерах серии RTU есть возможность использования защищенного соединения через частную виртуальную сеть, под названием OpenVPN

Процесс настройки и конфигурирования данного пакета для рядового пользователя может сопровождаться достаточно большими трудностями из-за отсутствия необходимых знаний.

Практически всю часть конфигурирования  можно произвести через WEB интерфейс, но некоторые элементы все же придется произвести через консоль!

Что такое OpenVPN и для чего он необходим можно ознакомиться в статье: OpenVPN

В данной статье мы ознакомимся с подготовительной частью, это генерация сертификатов и ключей шифрования для защиты нашего канала передачи.


1. Генерация сертификатов и ключей на Windows 

Для генерации сертификатов и ключей шифрования на ОС Windows необходимо установить само приложение OpenVPN.

Скачать последнюю версию OpenVPN для ОС Windows можно по ссылке: https://openvpn.net/community-downloads/.

После скачивания и установки в указанную Вами папку в ней будет список файлов, по умолчанию OpenVPN устанавливается в директорию C:Program FilesOpenVPN.

Для генерации ключей будем использовать easy-rsa. Необходимо запустить командную строку от имени администратора и перейти в директорию с папкой easy-rsa. В примере используем команду для перехода в папку по умолчанию, у Вас данный путь может отличаться.

cd C:Program FilesOpenVPNeasy-rsa 

1.1 Запускаем файл init-config.bat

C:Program FilesOpenVPNeasy-rsa>init-config.bat                
C:Program FilesOpenVPNeasy-rsa>copy vars.bat.sample vars.bat  
Скопировано файлов:         1.                                   

В папке появится файл vars.bat, открываем его текстовым редактором, нас интересуют строчки в самом конце, их нужно заполнить.

Мы подставили свои параметры, у Вас данные параметры будут другие.

set KEY_COUNTRY=RU
set KEY_PROVINCE=Moscow
set KEY_CITY=Moscow
set KEY_ORG=TELEOFIS
set KEY_EMAIL=support@teleofis.ru
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=server
set PKCS11_MODULE_PATH=server
set PKCS11_PIN=12345

Там где написано server, не трогаем. Сохраняем файл.

1.2 Редактируем файл openssl-1.0.0.cnf 

От имени администратора открываем блокнот, нам необходимо отредактировать файл openssl-1.0.0.cnf. По умолчанию данный файл находится в директории C:Program FilesOpenVPNeasy-rsa, у Вас данный путь также может отличаться.

Нам необходимо найти строчку: 

default_days = 365

Далее необходимо заменить значение 365 на 3650, в более новых версиях OpenVPN значение 3650 может быть уже установлено по умолчанию.

1.3 Генерируем ключи и сертификаты

Подаем последовательно в консоль команды:

vars

clean-all

В ответ должно прийти

Скопировано файлов: 1.
Скопировано файлов:         1.

Если, мы это видим, значит все хорошо, продолжаем…

1.4 Создаем центр сертификации CA

Подаем команду:

build-ca

На данном моменте в некоторых случаях может возникнуть ошибка:

C:Program FilesOpenVP

easy-rsa>build-ca

"openssl" не является внутренней или внешней

командой, исполняемой программой или пакетным файлом.

Для устранения ошибки открываем файл vars.bat от имени администратора и ищем строку 

rem set "PATH=%PATH%;C:Program FilesOpenVPNbin"

Удаляем rem, после чего данная строка должна принять вид:

set "PATH=%PATH%;C:Program FilesOpenVPNbin"

Сохраняем, далее снова подаем последовательно команды

vars

clean-all

В ответ должно прийти

Скопировано файлов: 1.
Скопировано файлов: 1.

Подаем команду:

build-ca

При генерации основного сертификата в консоли будут отображаться вопросы. Просто нажимаем Enter, т.к. все эти параметры мы ввели в файле vars.bat

Нажимаем Enter до тех пор, пока не отобразиться строка приглашения

C:Program FilesOpenVPNeasy-rsa

1.5 Создаем ключ Диффи-Хелмана

Данный шаг не является обязательным, ключ Диффи-Хелмана необходим для реализации одноименного протокола 

позволяющего использовать небезопасный канал для получения общего секретного ключа. Этот ключ будет в дальнейшем использоваться для защищенного обмена данными с помощью алгоритмов симметричного шифрования.

В применении к OpenVPN файл Диффи-Хелмана нужен для обеспечения защиты трафика от расшифровки, если ключи были похищены. Здесь имеется в виду тот трафик, который был записан и сохранен еще до похищения ключей.

Файл Диффи-Хелмана создается на сервере OpenVPN.

Для создания ключа необходимо подать команду:

build-dh

1.6 Создаем сертификат и ключ сервера

Подаем команду:

     build-key-server server

На вопросы нажимаем Enter, но не торопимся, в самом конце будет задано два вопроса

Sign the certificate?

1 out of 1 certificate requests certified, commit?

На оба эти вопроса отвечаем Y

1.7 Создаем сертификат и ключ клиента

Подаем команду:

build-key client 

Также не торопимся с ответами, как только увидим строку «Common Name (eg, your name or your server’s hostname)» нужно ответить client.

В самом конце также будут два вопроса, отвечаем также Y

Причем: для каждого клиента, нужно будет создать отдельные ключи и называть их client1, client2 или как-то иначе, все зависит от Вашего воображения. 

Например:

build-key client1

build-key office1

На этом создание файлов сертификатов и ключей завершено.

Все файлы будут лежать в папке C:Program FilesOpenVPNeasy-rsakeys


2. Генерация сертификатов и ключей на Linux 

Генерация сертификатов и ключей будет осуществляться на ОС Ubuntu Linux 20.04. 

Для других систем на базе Linux, некоторые команды могут отличаться!

Первоначально необходимо обновить все пакеты ОС Linux, подаем в консоль команду:

sudo apt-get update

sudo apt-get upgrade

Установим пакет zip, если он не был установлен ранее:

sudo apt install zip

2.1  Установка утилиты Easy-RSA

Создадим нового пользователя ca и переведем его в домашний каталог:

sudo adduser ca

В ответ система выведет информацию и попросит ввести пароль:

Adding user 'ca' ...
Adding new group 'ca' (1002) ...
Adding new user 'ca' (1002) wuth group 'ca' ...
Creating home directory '/home/ca' ...
Coping files from '/etc/skel/' ...
New password:

Вводим пароль, затем еще раз его повторяем, если все хорошо, система выведет следующую информацию:

passwd: password updated successfully
Changing the user information for ca
Enter the new value or press ENTER for the default
Full name []:
Room number []:
Work phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]

Нажимаем Y, пользователь успешно создан.

Делаем loging под пользователя ca:

     su ca

cd

Далее необходимо загрузить дистрибутив программы утилитой wget:

wget https://github.com/OpenVPN/easy-rsa/archive/master.zip 

Распаковываем архив:

$ unzip master.zip 

2.2 Создаем инфраструктуру публичных PKI, создание центра сертификации СА:

Создадим инфраструктуру публичных ключей (Public Key Infrastructure, PKI): 

cd /home/ca/easy-rsa-master/easyrsa3 

$ ./easyrsa init-pki 

В ответ система оповестит, что PKI создан успешно:

init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/ca/easy-rsa-master/easyrsa3/pki 

Далее создаем удостоверяющий центр сертификации:

$ ./easyrsa build-ca 

В ответ система выдаст сообщение следующего вида:

Generating RSA private key, 2048 bit long modulus (2 primes)
..................................................................................+++++
......................................................+++++
e is 65537 (0x010001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:ca

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home/ca/easy-rsa-master/easyrsa3/pki/ca.crt

Пароль будет защищать приватный ключ центра сертификации. Этот пароль потребуется каждый раз, когда Вы будете подписывать сертификаты для серверов и клиентов OpenVPN.

В конечном итоге у нас создадутся в системе два файла, которые нам в дальнейшем пригодятся: ca.crt и ca.key. Данные файлы находятся в директориях:

/home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key 
/home/ca/easy-rsa-master/easyrsa3/pki/ca.crt 

Файл ca.key является секретным, его нельзя передавать на другие узлы Вашей сети.

Файл ca.crt открытый, его необходимо передавать на узлы серверов и клиентов сети OpenVPN. 

2.3 Создаем список отзывов сертификатов

Если сотрудник уволился из компании и у него есть доступ в сети VPN компании, нам необходимо закрыть этот доступ путем отзыва сертификата CRL. Для создания сертификата проделаем следующее:

cd /home/ca/easy-rsa-master/easyrsa3 
$ ./easyrsa gen-crl 

Система запросит пароль для доступа к закрытому ключу ca.key. Список отзыва сертификатов будет доступен в файле crl.pem:

/home/ca/easy-rsa-master/easyrsa3/pki/crl.pem 

Данный сертификат передается OpenVPN серверу. Также в конфиге сервера должен быть прописан путь до crl.pem, как правило данное правило прописывается в server.conf.

crl-verify /usr/local/etc/openvpn/crl.pem

Для блокировки доступа пользователю, заблокируем ранее выданный сертификат, используя команду:

$ ./easyrsa revoke test 

В таблице ниже описана структура каталога PKI:

Файл или каталог

Описание

ca.crt Сертификат удостоверяющего центра, передается как на сервер OpenVPN, так и на клиент OpenVPN
crl.pem Список отзыва сертификатов CRL
issued Каталог с сертификатами, созданными центром сертификации СА
private Каталог с секретными ключами
Reqs Каталог запросов на сертификаты

2.4 Установка OpenVPN, создание каталога для конфигурации клиентов

Процесс создания сервера OpenVPN включает в себя установку пакета OpenVPN, создание сертификатов и ключей, а также подготовку рабочей конфигурации.

Установим пакет OpenVPN:

$ sudo apt-get install openvpn

Первоначально необходимо подготовить файлы конфигурации openssl.cnf и server.conf. Первый файл определяет конфигурацию OpenSSL, второй файл определяет конфигурацию сервера OpenVPN.

В комплекте с утилитой Easy-RSA поставляется пример файла конфигурации OpenSSL. Если Вы делали все действия по данному гайду, данный файл будет находиться по пути:

/home/ca/easy-rsa-master/easyrsa3/openssl-1.0.cnf 

По умолчанию файл openssl-1.0.cnf содержит в себе следующую информацию:

# For use with Easy-RSA 3.0+ and OpenSSL or LibreSSL

####################################################################
[ ca ]
default_ca      = CA_default            # The default ca section

####################################################################
[ CA_default ]

dir             = $ENV::EASYRSA_PKI     # Where everything is kept
certs           = $dir                  # Where the issued certs are kept
crl_dir         = $dir                  # Where the issued crl are kept
database        = $dir/index.txt        # database index file.
new_certs_dir   = $dir/certs_by_serial  # default place for new certs.

certificate     = $dir/ca.crt           # The CA certificate
serial          = $dir/serial           # The current serial number
crl             = $dir/crl.pem          # The current CRL
private_key     = $dir/private/ca.key   # The private key
RANDFILE        = $dir/.rand            # private random number file

Чтобы запуск сервера OpenVPN прошел успешно, необходимо создать каталоги, в которых будут храниться сертификаты и ключи для сервера и клиентов OpenVPN:

Создадим каталог для конфигурации клиентов:

$ sudo mkdir /etc/openvpn/ccd

2.5 Подготовка сертификатов и ключей для сервера OpenVPN

Для организации OpenVPN нам потребуются файлы, перечисленные в таблице ниже:

Файл Описание
dh.pem Ключ Диффи-Хелмана, используется для защиты трафика от расшифровки, необходимо загружать как на клиент, так и на сервер (опционально)
ca.crt Сертификат удостоверяющего центра CA, необходимо загружать на сервер и клиент OpenVPN
server.crt Сертификат сервера OpenVPN, необходимо загружать на сервер OpenVPN
server.key Приватный ключ сервера, секретный, необходимо загружать на сервер OpenVPN
crl.pem Cписок отзыва сертификатов CRL, необходимо загружать на сервер (опционально)
ta.key Ключ HMAC для дополнительной защиты от DoS-атак и флуда (опционально)
client.crt Сертификат клиента OpenVPN, необходимо загружать на клиент OpenVPN
client.key Приватный ключ клиента, секретный, необходимо загружать на клиента OpenVPN

Так как центр сертификации мы уже сгенерировали, на следующем этапе сгенерируем сертификат и приватный ключ для сервера OpenVPN.

$ cd /home/ca/easy-rsa-master/easy-rsa3/

$ ./easyrsa gen-req server

В процессе создания, система запросит пароль, а также имя Common Name для сервера OpenVPN:

Generating a RSA private key
.+++++
.......+++++
writing new private key to '/home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2258.QFUIV0/tmp.WadIoG'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [server]:server

Keypair and certificate request completed. Your files are:
req: /home/ca/easy-rsa-master/easyrsa3/pki/reqs/server.req
key: /home/ca/easy-rsa-master/easyrsa3/pki/private/server.key

Если же Вы хотите создать данные файлы без защиты паролем, используем команды:

$ cd /home/ca/easy-rsa-master/easy-rsa3/

$ ./easyrsa gen-req server nopass 

Таким образом, в системе создадутся два файла: server.req и server.key, первый из них является открытым, его необходимо будет в дальнейшем подписать удостоверяющим центром СА, второй является секретым, его необходимо хранить на сервере OpenVPN.

Следующим шагом необходимо подписать данный сертификат (server.req) на стороне удостоверяющего центра СА:

$ ./easyrsa sign-req server server

При создании сертификата система запросит пароль (если при формировании server.req сертификат создавался с паролем).  Необходимо будет ответить на сообщение yes, после чего ввести пароль от сертификата server.req. После успешного создания сертификата, система также уведомит об этом.

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 825 days:

subject=
    commonName                = server


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
Using configuration from /home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2714.b10rbG/tmp.y76kMH
Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server'
Certificate is to be certified until Oct 19 13:09:57 2022 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/server.crt

Отлично! Теперь необходимо загрузить на сервер OpenVPN сертификат server.crt, который был только что создан, а также ключ server.key.

По умолчанию и ключ находятся в следующих директориях:

/home/ca/easy-rsa-master/easyrsa3/pki/issued/server.crt  
/home/ca/easy-rsa-master/easyrsa3/pki/private/server.key

2.6 Подготовка сертификатов и ключей для клиента OpenVPN

Генерировать сертификат будем под пользователем ca:

su ca

cd /etc/home/ca/easy-rsa-master/easy-rsa3

./easyrsa gen-req client nopass

Если к защите данных предъявляются повышенные требования, сертификат можно создать с паролем:

./easyrsa gen-req client

Далее система попросит ввести Common Name, я назову данный сертификат client1, после генерации ключа система дополнительно оповестит нас об этом:

Generating a RSA private key
....................................................................+++++
........................+++++
writing new private key to '/home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2221.ChEcsT/tmp.gWTNPO'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [client]:client1

Keypair and certificate request completed. Your files are:
req: /home/ca/easy-rsa-master/easyrsa3/pki/reqs/client.req
key: /home/ca/easy-rsa-master/easyrsa3/pki/private/client.key

Таким образом, в системе создадутся два файла: client.req и client.key, первый из них является открытым, его необходимо будет в дальнейшем подписать удостоверяющим центром СА, второй является секретым, его необходимо будет в дальнейшем загрузить на клиент OpenVPN.

Далее необходимо только что созданный сертификат client.req подписать в удостоверяющем центре СА:

./easyrsa sign-req client client

При создании сертификата система запросит пароль (если при формировании server.req сертификат создавался с паролем).  Необходимо будет ответить на сообщение yes, после чего ввести пароль от сертификата client.req. После успешного создания сертификата, система также уведомит об этом.

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a client certificate for 825 days:

subject=
    commonName                = client1


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
Using configuration from /home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2951.3DJoCJ/tmp.AqABm4
Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'client1'
Certificate is to be certified until Oct 20 07:26:18 2022 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/client.crt

Отлично! Теперь необходимо загрузить на клиент OpenVPN сертификат client.crt, который был только что создан, а также ключ client.key.

По умолчанию и ключ находятся в следующих директориях:

/home/ca/easy-rsa-master/easyrsa3/pki/private/client.key
/home/ca/easy-rsa-master/easyrsa3/pki/issued/client.crt

2.7  Создаем ключ Диффи-Хелмана

 Для генерации ключа Диффи-Хелмана будем использовать команду:

$ cd /home/ca/easy-rsa-master/easy-rsa3/

$ ./easyrsa gen-dh

Создание ключа Диффи-Хелмана может занять достаточно продолжительное время, по окончании данного процесса система оповестит об этом:

DH parameters of size 2048 created at /home/ca/easy-rsa-master/easyrsa3/pki/dh.pem

Данный ключ находится в директории:

/home/ca/easy-rsa-master/easyrsa3/pki/dh.pem

2.8 Создание статического ключа HMAC

Для создания ключа HMAC используется команда openvpn с опциями —genkey и —secret. Данный ключ необходимо создавать не от обычного пользователя, а от пользователя с правами администратора.

cd /etc/openvpn

su teleofis

Система попросит ввести пароль от админской учетки, после ввода пароля необходимо выдать себе права на владение:

sudo chown -R teleofis:teleofis .

openvpn —genkey —secret ta.key

Ключ сгенерирован, он будет находиться в директории:

/etc/openvpn/ta.key

На этом моменте создание сертификатов закончено, далее переходим к следующей статье:
OpenVPN режим мультиклиента: Часть 2 — Настройка RTU сервера (tun)


Сопутствующие статьи:
Как подключиться к роутеру RTU?

Описание WEB-интерфейса роутера RTU


Дополнительная информация: 

Wiki на GitHub

0 / 0 / 0

Регистрация: 13.04.2016

Сообщений: 5

1

24.11.2017, 22:38. Показов 23347. Ответов 3


Проблема возникает в том, что когда я прописываю команду build-ca.bat выдает ошибку «openssl» не является внутренней или внешней
командой, исполняемой программой или пакетным файлом
уже пару часов мучаюсь с этой проблемой, в батниках вроде все нормально, но не могу разобраться

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



56 / 55 / 13

Регистрация: 01.08.2017

Сообщений: 188

24.11.2017, 23:23

2

YungBoulevard,
Неверно указан путь к openssl. Должен быть или прописан жестко (прямой линк к exe), или через переменные(var), смотреть точнее в батнике (открыть блокнотом build-ca.bat)



0



0 / 0 / 0

Регистрация: 13.04.2016

Сообщений: 5

24.11.2017, 23:25

 [ТС]

3

Да так и есть, спасибо уже разобрался, но теперь в логе другие проблемы…
Warning: Ignoring option ‘dh’ in tls-client mode, please only include this in your server configuration



0



56 / 55 / 13

Регистрация: 01.08.2017

Сообщений: 188

24.11.2017, 23:46

4

YungBoulevard,
это не ошибка, а предупреждение. Насколько понимаю, связано с
—dh file
File containing Diffie Hellman parameters in .pem format (required for —tls-server only).



1



OpenVPN - установка и настройка

В этой статье я рассмотрю процесс настройки OpenVPN клиента (client) и сервера (server) на примере версии 2.4.7. используемая операционная система — Windows 10, но таким же образом можно настроить OpenVPN на Windows 7.

OpenVPN – механизм реализации виртуальных частных сетей (Virtual Private Network, VPN) с открытым исходным кодом. Используется для создания защищенных (шифрованных) каналов связи между сервером и клиентом, а так же между двумя точками.

OpenVPN позволяет создавать безопасные соединения между компьютерами, которые находятся за пределами фаервола, при этом не требуется изменять настройки фаервола.

Создателем системы является Джеймсом Йонаном (James Yonan).

Что бы создать защищенный канал используется библиотека OpenSSL. Весь набор шифров доступный в библиотеке используется в системе.

Система предлагает пользователю несколько способов аутентификации:

  • Аутентификация с помощью предустановленного ключа – наиболее простой метод.
  • Серверная аутентификация – более сложный, но при этом более гибкий в настройках метод.
  • При помощи ввода логина и пароля. Может использоваться без создания сертификата клиента, при этом сертификат сервера все равно необходим.

Давайте разберемся на примере. Я настрою OpenVPN на двух компьютерах под управлением Windows 10. Они будут находиться в одной локальной сети. Так как для настроек через интернет необходим хотя бы один статический IP-адрес.

На этом примере мы разберемся, как создавать ключи и сертификаты безопасности, а так же научимся настраивать конфигурационный файл VPN-сервера и VPN-клиента.

Установка и настройка OpenVPN

Один компьютер будет играть роль сервера. Второй – клиента. На сервере при установке OpenVPN нужно установить флажок EasyRSA – для генерации сертификатов и ключей.

Переходим на официальный сайт OpenVPN http://openvpn.net/community-downloads/ и скачиваем программу. В моем случае OpenVPN 2.4.7 для Windows 10 (openvpn-install-2.4.7-I607-Win10).

В теории можно скачать и более поздний релиз, но лучше скачивать проверенную версию. Так как я не настраивал последние версии. Если дойдут руки, то дополню статью.

После запуска программы установки включаем EasyRSA (на сервере) и устанавливаем. Программа устанавливается просто и не требует каких-либо специфических настроек при установке.

Затем устанавливаем программу втором компьютере который будет играть роль клиента.

Далее нужно настроить компьютеры, что бы они видели друг друга в сети. Этот процесс зависит от установленной у вас операционной системы. Фактически вам нужно включить сетевое обнаружение.

Создание сертификатов и генерация ключей

Ключи и сертификаты создаются на сервере OpenVPN. Для их создания необходимо выполнить следующие действия:

Запустите командную строку от имени администратора.

Запуск командной строки от имени администратора

С помощью команды cd перейдите в папку C:Program FilesOpenVPNeasy-rsa и выполните команду init-config.bat, после чего в папке easy-rsa появиться файл vars.bat.

Откройте vars.bat с помощью блокнота или иного текстового редактора. Я открыл в Notepad++. Укажите свои данные.

Данные в var.bat

Данные можно указывать в процессе работы с OpenVPN.

Указание данных в процессе

Вернитесь в командную строку и по очереди выполните команды vars и clean-all поочередно.

Команды vars и clean-all

Выполните команду build-dh. Если у вас появиться ошибка «openssl» не является внутренней или внешней командой, исполняемой программой или пакетный файлом, то нужно добавить в переменные среды путь OpenVPNbin.

Изменение системных переменных сред

Для этого нужно в переменную среды Path создать путь C:Program FilesOpenVPNbin.

Переменная path

Затем заново откройте командную строку и выполните пункты 4-5 заново.

Подождите до завершения процесса. В результате в паке OpenVPNeasy-rsakeys появиться файл dh2048.pem.

Создайте новый сертификат Certificate Authority (CA) и ключ, для чего введите команду build-ca. После завершения процесса в папке keys появятся два файла ca.crt и ca.key.

Создайте сертификат и ключ сервера. Для этого введите команду build-key-server к которой нужно добавить [CommonName] (в моем случае abuzov-name), то есть моя команда будет build-key-server abuzov-name. В конце дайте положительный ответ (y) на два вопроса.

Создайте сертификат и ключ для клиента. Введите команду build-key [CommonNameClient], например build-key ClientVPN1.

Создайте ключ для аутентификации пакетов, для этого выполните команду openvpn —genkey —secret keys/ta.key. В результате в папке easy-rsakeys появится файл ta.key

Таблица соответствия сертификатов и ключей

Имя Где применяется Назначение Секретность
ca.crt Сервер + все клиенты Корневой сертификат (Root CA certificate) Нет
ta.key Сервер + все клиенты Файл аутентификации пакетов Да
ca.key Сервер Корневой ключ (Root CA key) Да
dh2048.pem Сервер Файл параметров Нет
abuzov-name.csr Сервер Сертификат сервера Нет
abuzov-name.key Сервер Ключ сервера Да
ClientVPN1.csr Только на ClientVPN1 Сертификат клиента Нет
ClientVPN1.key Только на ClientVPN1 Ключ клиента Да

Теперь нужно скопировать соответствующие ключи на сервер и клиент в папку config (в моем случае это C:Program FilesOpenVPNconfig).

Создание и настройка файлов конфигурации OpenVPN

Конфигурация основывается на файлах типовой конфигурации, которые находятся в C:Program FilesOpenVPNsample-config.

Настройка конфигурации сервера

Копируете файл server.ovpn из папки sample-config в папку config. Открываете и редактируете его. Обратите внимание на двойные слеши.

  1. Найдите строку, которая начинается на ca и укажите путь к своему ca файлу. В моем случае это ca «C:\Program Files\OpenVPN\config\ca.crt».
  2. Найдите cert и отредактируйте соответственно, в моем случае это cert «C:\Program Files\OpenVPN\config\abuzov-name.crt».
  3. По аналогии с key — key «C:\Program Files\OpenVPN\config\abuzov-name.key».
  4. Аналогично с dh — dh «C:\Program Files\OpenVPN\config\dh2048.pem»
  5. Аналогично tls-auth — «C:\Program Files\OpenVPN\config\ta.key».

Я приведу полный код конфигурации сервера, на всякий случай, что бы его можно было просто скопировать. Так как знаю что такое первая настройка OpenVPN.

mode server
port 1194
dev tap
proto tcp-server
tls-server
tls-auth "C:\Program Files\OpenVPN\config\ta.key" 0
duplicate-cn
auth MD5
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca "C:\Program Files\OpenVPN\config\ca.crt"
cert "C:\Program Files\OpenVPN\config\abuzov-name.crt"
key "C:\Program Files\OpenVPN\config\abuzov-name.key" # This file should be kept secret
dh "C:\Program Files\OpenVPN\config\dh2048.pem"
server 10.10.10.0 255.255.255.0
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
route-delay 10
route-method exe
route 10.10.10.0 255.255.255.0
route 192.168.0.0 255.255.0.0
route-gateway 10.10.10.1

Сохраните файл конфигурации сервера.

Запустите OpenVPN от имени администратора (и сразу сделайте так, что бы он всегда запускался от имени администратора).

После этого подключитесь к северу как показано на рисунке.

Подключение к серверу OpenVPN

Настройка конфигурации клиента

Копируете файл client.ovpn из папки sample-config в папку config. Открываете и редактируете его аналогии. В моем случае это:

  1. ca «C:\Program Files\OpenVPN\config\ca.crt»
  2. cert «C:\Program Files\OpenVPN\config\ClientVPN1.crt»
  3. key «C:\Program Files\OpenVPN\config\ClientVPN1.key»
  4. remote IP_адрес_сервера

Опять, лучше приведу полный код.

remote IP-адрес-вашего-сервера
client
port 1194
dev tap
proto tcp-client
tls-client
tls-auth "C:\Program Files\OpenVPN\config\ta.key" 1
remote-cert-tls server
route-delay 2
auth MD5
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca ca.crt
cert ClientVPN.crt
key ClientVPN.key
pull
cipher AES-128-CBC
comp-lzo
persist-key
persist-tun
verb 3
route-method exe
route-delay 3

Единственное что нужно сделать — указать IP-адрес сервера.

Далее подключаем клиент OpenVPN.

Если клиент не подключается к серверу, тогда нужно на сервере необходимо запустить regedit.exe, затем перейти по адресу: «КомпьютерHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters» и изменить IPEnableRouter на 1. После чего перезагрузить сервер и подключиться к OpenVPN заново.

После этого можно подключаться по защищенному соединению.

Подключение openvpn

В этой статье я расскажу о пожалуй самом простом способе создания самоподписных сертификатов, как сертификатов сервера так и сертификатов клиента.

Более простой способ, использовать Cert Manager в дистрибутиве Pfsense

Для чего такие сертификаты нужны? В основном мне требуются такие сертификаты для использования в различных VPN туннелях таких как IPSEC или OpenVPN, но использование PKI инфраструктуры (инфраструктуры открытых ключей) этим не ограничивается, подробнее о PKI можно узнать здесь.
В интернете существует масса статьей о том каким способом можно создать самоподписной сертификат, но все эти статьи сложны для запоминания и требуют знания аргументов openssl, а их там довольно много, я пару раз пробовал, иногда получалось =) Но позже когда я стал изучать вопрос создания OpenVPN туннелей я открыл для себя более простой способ — с помощью утилит входящих в комплект OpenVPN, об этом и пойдёт речь ниже.

установка необходимого по

Статья периодически обновляется, поэтому скриншоты могут быть сделаны в разное время, но они всегда отражают суть того что нужно сделать, на небольшие несоответствия, например в размере ключа сертификата можно просто не обращать внимания

Итак сначала нам необходим скачать сам пакет, он находится на сайте OpenVPN.net в разделе community (community downloads). Для написания примера была использована Windows 8.1, но как вы понимаете аналогичные действия можно проделать на любой другой ОС Windows начиная с 2000.

в моём случае это Windows Installer 64-bit (битность выбирайте в зависимости от вашей ОС).

openvpn install windows
Начинаем установку

openvpn install components
Если вы хотите установить OpenVPN только для создания самоподписных сертификатов то выбираем только те пункты которые отмечены на скриншоте выше, если же вам нужен будет и сам OpenVPN отмечайте все пункты.

подготовка

Заходим в папку с программой и находим там папку easy-rsa, поскольку мы будем тренироваться, да и вообще на будущее, рекомендую скопировать папку например в easy-rsa-название, в моём случае это будет easy-rsa-cmp.

Переходим в эту папку, там есть файл Readme в котором описано всё что нужно сделать, но ридми как водится у нас никто не читает, поэтому продолжу описание.

Для начала переименовываем файл vars.bat.sample в vars.bat и редактируем его (правой кнопкой мыши — изменить)

Содержание файла примерно следующее:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

@echo off

rem Edit this variable to point to

rem the openssl.cnf file included

rem with easyrsa.

rem Automatically set PATH to openssl.exe

FOR /F «tokens=2*» %%a IN (‘REG QUERY «HKEY_LOCAL_MACHINESOFTWAREOpenVPN»‘) DO set «PATH=%PATH%;%%bbin»

rem Alternatively define the PATH to openssl.exe manually

rem set «PATH=%PATH%;C:Program FilesOpenVPNbin»

rem тут мы прописываем адрес нашей папки, папку то мы скопировали

set HOME=%ProgramFiles%OpenVPNeasyrsacmp

set KEY_CONFIG=openssl1.0.0.cnf

set KEY_DIR=keys

set DH_KEY_SIZE=2048

rem Private key size

set KEY_SIZE=4096

rem В этом блоке можно ничего и не менять, но я поменяю :)

rem Эта информация будет предлагаться для заполнения по умолчанию

set KEY_COUNTRY=RU

set KEY_PROVINCE=KRD

set KEY_CITY=Krasnodar

set KEY_ORG=CMP

rem тут в общем можно и свой емайл указать

set KEY_EMAIL=support@cmp.local

rem дальше ничего не меняем

set KEY_CN=changeme

set KEY_NAME=changeme

set KEY_OU=changeme

set PKCS11_MODULE_PATH=changeme

set PKCS11_PIN=1234

Файл затем надо будет сохранить, если у вас включён UAC (а по умолчанию он включён) сначала сохраните файл на рабочий стол, а потом скопируйте его в папку easy-rsa-cmp

CMD

на этом подготовительный этап завершён и мы приступаем к работе с батниками через командную строку.

В windows с uac жмём пуск и набираем cmd далее правой кнопкой мышки и запустить от имени администратора. В появившемся окошке набираем cd «адрес нашей папки easy-rsa». Если в адресе есть пробелы набираем адрес в двойных кавычках. Если пробелов нет кавычек можно не ставить. В windows без uac или с выключенным uac пуск — выполнить — cmd (win+r — cmd). Для удобства адрес сначала можно скопировать в адресной строке проводника, и затем вставить. В моём случае команда выглядит как cd «C:Program FilesOpenVPNeasy-rsa-cmp» жмём интер.

Затем набираем vars , жмём интер окно cmd не закрываем до полной генерации всех сертификатов.

Eсли же вдруг окно закрыли, то перед тем как продолжать что-либо не забывайте каждый раз набирать vars, эта команда выполняется каждый раз перед тем как вы захотите что-либо сделать, она задаёт переменные, которые сохраняются пока открыто окно командной строки

После выполнения команды vars набираем clean-all и опять таки интер.

Clean-all выполняется всего один раз. Эта команда стирает папку с ключами и сертификатами и/или создаёт заново необходимые для генерации файлы. Поэтому рекомендую быть крайне внимательными к этой команде.

следующий этап создание — Root CA
набираем build-ca и жмём интер, отвечаем на вопросы и переходим к созданию сертификата для сервера

Если появляется ошибка «openssl» не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
В vars.bat пишем rem вначале строки 7 и удаляем rem вначале строки 10. Запускаем vars.bat ещё раз.

build-ca
команда build-key-server имя_сертификата и снова отвечаем на вопросы. Обращаю внимание что поле commonName должно быть уникальным и не совпадать не с одним другим сертификатом.
build-key-server

Обратите внимание на поле commonName, это поле должно быть уникальным. Именно это поле определяет имя сертификата.

Следующий шаг создание сертификата клиента
команда build-key имя_сертификата и отвечаем на вопросы

build-key

the end

Вот и всё. Созданные сертификаты и ключи к ним лежат в папке keys.

ca.crt — открытый сертификат Root CA, можно распространять свободно.
ca.key — закрытый ключ сертификата.

Имея закрытый ключ можно создавать сертификаты подписанные этим ключом. Поэтому ни в коем случае не передавайте никому закрытый ключ Root CA.


test-server.crt — открытый сертификат сервера;
test-server.key — закрытый ключ сервера;

test-client.crt — открытый сертификат клиента;
test-client.key — закрытый ключ клиента.

Остальные файлы интереса особого для нас не представляют.

На этом всё, как обычно вопросы и пожелания можно оставлять в комментариях ниже.

Like this post? Please share to your friends:
  • Openssl для windows 10 x64 скачать
  • Openssl windows 64 скачать на русском
  • Openssl shared library для windows 10
  • Openssh windows server 2012 r2 настройка
  • Openssh server windows server 2008 r2