OpenSSL���g����CA�̍\�z

CA���\�z����Ƃ̓T�[�o��N���C�A���g�F�؂̂��߂̏ؖ����� ���s���邱�Ƃ��ł���悤�ɂ��邱�Ƃ��Ӗ����܂�.

������Ă͂Ȃ�Ȃ��̂̓l�b�g���[�N�T�[�o�̂悤�� �l�b�g���[�N�ɐڑ����ꂽ�z�X�g�̓���̃|�[�g�Őڑ���҂��󂯂āA �N���C�A���g�������ɐڑ����āA�R�}���h�𔭍s���A ���ʂ𓾂邽�߂̃T�[�o�����킯�ł͂Ȃ��Ƃ������Ƃł�.

�m���Ɉ˗��҂���CSR���󂯎��A����Ɋ�Â��ďؖ����� ���s���܂����A���̎󂯓n���̂��߂̎菇����߂��Ă��� �킯�ł͂���܂���BWWW��CGI�Ŏ󂯓n�����s���Ă��A ���[���Ŏ蓮�ő����Ă��悢�킯�ł��B ���̕����͋K�񂪂���킯�ł͂���܂���B

�F�؋ǂ��\�z����̂ɕK�v�Ȃ̂́A���y�A�����A�ؖ�������� �\�t�g�E�F�A��p�ӂ��邱�ƁA�܂��\�z����F�؋ǎ��g�� CA�ؖ��������̂ɕK�v�Ȃ��̂��쐬���邱�Ƃł��B

OpenSSL�̃C���X�g�[��

�C���X�g�[���͊ȒP�ł��B �܂�OpenSSL�̃p�b�P�[�W�� http://www.openssl.org/�Ȃǂ�����肵�āA �ȉ��̂悤�ɓW�J����make���邾���ł��B

% tar zxvf openssl-0.9.6.tar.gz
% cd cd openssl-0.9.6
% ./config
% make
% make test
% su
# make install

����ɂ����e��/usr/local/ssl�ɃC���X�g�[������܂��B

openssl.cnf�̐ݒ�

openssl�R�}���h�̓����ݒ��/usr/local/ssl/openssl.cnf�ɍs���܂�. �ȉ���/usr/local/ssl/openssl.cnf�̎�v�ȕ��������グ�܂��B

[ ca ]
default_ca      = CA_default

[ CA_default ]
dir             = /usr/local/ssl/fclCA

policy          = policy_match

[ policy_match ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

��v�����ȊO�͏ȗ����Ă��܂�.

[ CA_default ] �� dir�Ŏw�肵���p�X��CA�Ŏg����� ���߂��܂�.���̐ݒ�Ŏg���ɂ�CA.sh���ȉ��̂悤�� ���č���Ă����ƕ֗��ł��B

# cd /usr/local/ssl
# cp /misc/CA.sh bin

������/usr/local/ssl/bin/CA.sh�̈ȉ��̕�����ҏW���Ă����܂��B

CATOP=/usr/local/ssl/fclCA

CA.sh�����s���鎞�ɂ�/usr/local/ssl/bin��PATH���ʂ��Ă��Ȃ���� �Ȃ�Ȃ��̂ŁA���̃X�N���v�g�� PATH=/usr/local/ssl/bin:${PATH} �Ƃ����L�q���܂߂Ă����Ă������ł��傤�B

CA�̃|���V�[

CA�ł͈˗��҂���CSR(�ؖ����v��)���󂯎���āA �ؖ����𔭍s����킯�ł����A���ׂĂ�CSR�ɑ΂��ďؖ����� ���s����ׂ��ł͂���܂���B�S���m��Ȃ��l���痈��CSR�� �{�l�̐g�����m�F�������ɔ��s���ꂽ�ؖ����͐M�p�x�����܂� �Ȃ�����ł��B

����ŁACA�ł͂ǂ̂悤��CSR(�ؖ����v��)�ɑ΂��ďؖ����𔭍s���邩 �����߂��u�|���V�[�v��ݒ肵�܂�.

CSR��Subject�̕������ǂ̂悤�ȏꍇ�ɏؖ����𔭍s���邩�ɂ‚��āA �ȉ��̂悤�Ƀ|���V�[��ݒ�ł��܂��B

matchCA�̓��e�ƈ�v���Ȃ���΂Ȃ�Ȃ�
optional�����Ă��悢
supplied�Ȃ���΂Ȃ�Ȃ�

�ȏ�̐ݒ肪�I���������ۂ�CA���\�z���܂��B

CA(�F�؋�)�̍\�z

CA���\�z����Ƃ͌��̃y�A�����A�T�[�o��N���C�A���g�F�؂̂��߂� �ؖ����𔭍s���邱�Ƃ��ł���悤�ɂ��邱�Ƃ��Ӗ����܂�. ���̍ۂɈ˗��҂���CSR���󂯎��A����Ɋ�Â��ďؖ����𔭍s���܂����A �l�b�g���[�N�T�[�o�̂悤�ɂǂ����̃|�[�g�Őڑ���҂��󂯂āA �R�}���h���󂯎���Č��ʂ�Ԃ��Ƃ����悤�ȍ�Ƃ�����킯�ł� ����܂���B

���[�gCA���\�z����ꍇ

�������g�����[�gCA�Ƃ���ꍇ�́A�ȉ��̎菇��CA���\�z���܂��B
  1. �閧���ƌ��J���̃y�A�����
  2. ���ȏ����^�̏ؖ��������
OpenSSL�ł͂��̏������A����X�N���v�g�����s���邾���ōς݂܂�. ��L�̃C���X�g�[�����@�Őݒ肵���‹��ŁA �ȉ��̃R�}���h�����s���Ă��������B

# /usr/local/ssl/bin/CA.sh -newca
CA certificate filename (or enter to create)
(�Ȃɂ����͂���Return�L�[������)
Making CA certificate ...
Using configuration from /usr/local/ssl/openssl.cnf
Generating a 1024 bit RSA private key
.........................................................++++++
.++++++
writing new private key to '/usr/local/ssl/fclCA/private/./cakey.pem'
Enter PEM pass phrase:(�閧���̃p�X�t���[�Y�����)
Verifying password - Enter PEM pass phrase:(������x����)
-----
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.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Fukuoka
Locality Name (eg, city) []:Kitakyushu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FC Lab
Organizational Unit Name (eg, section) []:Lab
Common Name (eg, YOUR name) []:FC Lab CA
Email Address []:[email protected]

�����œ��͂����p�X�t���[�Y(�p�X���[�h)��CA�̔閧���̃p�X�t���[�Y�� �ؖ������s�̍ۂɕK�v�ƂȂ�̂ŖY��Ȃ��悤�ɂ��Ȃ���΂Ȃ�܂���B

�ȏ�̏����ɂ�� /usr/local/ssl/fclCA�Ɉȉ��̂��̂��쐬����܂��B

cacert.pem���ȏ����^��CA�̏ؖ���
private/cakey.pem�閧��
�閧���͐�΂ɑ��̐l�Ɍ����Ă͂Ȃ�Ȃ��̂�

# chmod 600 /usr/local/ssl/fclCA/private/cakey.pem
# chmod 700 /usr/local/ssl/fclCA/private
�����s���Ă����܂�. �ؖ���������������Ă��邩�m�F����ɂ͈ȉ��̂悤�ɂ��܂��B

# openssl x509 -in cacert.pem -text

�M�����ꂽCA�̉��ʂ�CA���\�z����ꍇ

��ʂ�CA�ɏؖ����ꂽCA�����ꍇ�͈ȉ��̂��Ƃ��K�v�ł��B
  1. �閧���ƌ��J���̃y�A�����
  2. CSR�����A���CA�ɑ���
  3. ���CA����ؖ������󂯎��
���ۂ̎菇�͏�ʂ�CA�ɂ���ĈقȂ�ꍇ������Ǝv���܂���. �ȉ��̂悤�Ȏ菇���Ǝv���܂��B �܂��A�閧���ƌ��J���̃y�A�����CSR�����ɂ͈ȉ��̃R�}���h�����s���܂��B

# /usr/local/ssl/bin/openssl req -new -keyout cakey.pem -out csr.pem
����ɂ��A�閧����cakey.pem��CSR(�ؖ����v��)��csr.pem�ɂł��܂�. ��L�̐ݒ�̏ꍇ�́A �����łł���cakey.pem��/usr/local/ssl/fclCA�ɒu���܂�.

�����csr.pem����ʂ�CA�ɑ����ďؖ���������Ă��炢�܂��B ���CA����ؖ������󂯎��܂��B�󂯂�ؖ����̌`����CA�ɂ���� �قȂ�Ǝv���܂��̂�,�����DER��PEM�`���������̂� /usr/local/ssl/cacert.pem�ɒu���܂�.

�ؖ����̔��s�菇

���Ƃ͂�����CA�̏ꍇ���A�˗��҂���CSR���󂯎��A�����̔閧���� ���������ؖ����𔭍s���܂��B�܂��K�v�Ȏ��ɂ͎����̏ؖ��� (���CA�����s�����ؖ��������ȏ����^�̏ؖ���)��n�����Ƃɂ��A CA�Ƃ��ĉ^�p���邱�Ƃ��ł��܂��B

 

Copyright (C)2001 Takeshi FUJIKI