How to generate my own certificate using cert-tool


Hi everyone,

I try generate of certificate using the cert-tool, but when I run the cert-tool not generate nothing.
I followed the quick start and I did see example of cert-tools, how to generate my own certifycate in format JSON



Follow the instructions on github it works for me.

For step by step, it works for me on Ubuntu

cd ~
git clone && cd cert-tools
sudo pip install .

You need to modify conf.ini (mine looks like this )
Take note that I removed something on the default config and I added the full path of some configs.

then run ,

create-certificate-template -c conf.ini

This will create the template ~/cert-tools/sample_data/certificate_templates/test.json

Then modify your roster

vi /home/[youruser]/cert-tools/sample_data/rosters/game_of_thrones_live_roster.csv


cd ~/cert-tools/
instantiate-certificate-batch -c conf.ini

This will create an unsigned certificate and will be stored in ~/cert-tools/sample_data/unsigned_certificates


thank you reypadilla.

I run the script in Debian 9, and its work fine, but I can’t build unsigned certificate in unsigned_certificates folder, in mi conf.ini in the path roster,
roster = /home/ngel/Documents/Projects/Blockcert-CertTools/cert-tools/sample_data/rosters/utepsa.csv

when I run cd ~/cert-tools/
instantiate-certificate-batch -c conf.ini

the result is like this:

Writing certificates to /home/ngel/Documents/Projects/Blockcert-CertTools/cert-tools/sample_data/unsigned_certificates
Traceback (most recent call last):
File “/usr/local/bin/instantiate-certificate-batch”, line 11, in
File “/usr/local/lib/python2.7/dist-packages/cert_tools/”, line 130, in main
File “/usr/local/lib/python2.7/dist-packages/cert_tools/”, line 84, in create_unsigned_certificates_from_roster
with open(roster, ‘r’) as theFile:
IOError: [Errno 2] No such file or directory: ‘/home/ngel/Documents/Projects/Blockcert-CertTools/cert-tools/sample_data/rosters/utepsa.csv’

I understand that this line instantiate-certificate-batch -c conf.ini, build automaticly a utepsa.csv file, like when I run create-certificate-template -c conf.ini, but it don’t do that, please help me

and do you tell me please the next questions:

1.- what is this or what it mean badge_id = 82a4c9f2-3588-457b-80ea-da695571b8fc this badge_id is generated for who?

thanks for your time



Hi Angel,

instantiate-certificate-batch -c doesn’t automatically build the .csv file. You need to provide the roster (that .csv file) with the fields (name, last name, identity, etc…) for each of your certificates.



Gabriel is correct you need your csv file. I think its on the step by step I said that you need to modify your roster.
I’m not sure about the badge id, I think it maybe connected to something else. I just leave it as is in my test.


Thanks everyone for helping out! batchId is used to populate the id field on the badge class, as required by open badges. At a high level, if there is a URL describing the badge (accomplishment/certificate) generally at the batch level (i.e. not per recipient), you can point to that. Otherwise, give it a GUID. This is required by Open Badges. See the Open Badges spec for details.

For testing purposes, you can use the value in the config file.


Hi Kim.

thansk for your time, but then bagde_id is generated for the openbadges don’t you?, I mean when created new certificates, how to recover de bagde_id from openbadges?.

and could you explain me of the confi.ini file please.



Hi Angel,
Open Badges doesn’t create the badge id; they only require that an issuer create it in a specific format (in order to comply with Open Badge standards).

So, for example, you can use an online GUID generator example of one to obtain a value to use in the conf.ini file.

About the conf.ini file – it sounds like I need to improve the documentation on that. I’ll open an issue, but let me know if you have any other specific questions.