2010. 7. 7.

[SSL] openssl 인증서 생성 방법

[key 파일 생성]
openssl genrsa -des3 -out filename.key 1024
암호
-- 암호 없이 할려면 openssl genrsa -out filename.key 1024
-- 암호를 추가 할려면 openssl rsa -in filename.key -des3 -out new_filename.key
-- 암호 제서시 openssl rsa -in filename.key -out new_filename.key


[csr생성]
openssl req -new -key filename.key -out filename.csr
일반적인 값을 입력하고 common Name에 원하는 도메인 값입력
email주소에 도메인 관리자 메일 주소입력

[crt생성]
openssl req -key filename.key -x509 -nodes -sha1 -days 365 -in filename.csr -out filename.crt
내용보기
openssl x509 -noout -text -in filename.crt
openssl req -noout -text -in filename.csr
openssl rsa -noout -text -in filename.key



ex)

Key 생성

openssl genrsa -des3 -out mail.test.com.key 1024

[root@www ~/ssl/]# openssl genrsa -des3 -out mail.test.com.key 1024
Generating RSA private key, 1024 bit long modulus
....++++++
.................++++++
e is 65537 (0x10001)
Enter pass phrase for mail.test.com.key: 패스워드 입력
Verifying - Enter pass phrase for mail.test.com.key: 동일 패스워드 입력


Csr 생성

openssl req -new -key mail.test.com.key -out mail.test.com.csr

[root@www ~/ssl/]# openssl req -new -key mail.test.com.key -out mail.test.com.csr
Enter pass phrase for mail.test.com.key:
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) [GB]:kr
State or Province Name (full name) [Berkshire]:Seoul
Locality Name (eg, city) [Newbury]:Gangnamgu
Organization Name (eg, company) [My Company Ltd]:Test Copr
Organizational Unit Name (eg, section) []:supper
Common Name (eg, your name or your server's hostname) []:mail.test.com
Email Address []:admin@test.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 엔터
An optional company name []:ucert




Cst 생성

openssl req -key mail.test.com.key -x509 -nodes -sha1 -days 3650 -in mail.test.com.csr -out mail.test.com.crt

[root@www ~/ssl/]# openssl req -key mail.test.com.key -x509 -nodes -sha1 -days 3650 -in mail.test.com.csr -out mail.test.com.crt
Enter pass phrase for mail.test.com.key: 패스워드 입력



위와같이 생성 하면 됩니다.



이젠 아파치 설정에서 ssl.conf 파일을 수정 하면 된다.

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXORT56:RC+RSA:+HIG:+MEDM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /apachedomains/conf/ssl/mail.test.com.crt
SSLCertificateKeyFile /apachedomains/conf/ssl/mail.test.com.key


그리고 재가동 하면 확인 끝

2010. 4. 6.

FTP 접근 사용자 접근 정보를 한곳에서 처리하는 방법(netrc)

FTP 접근 사용자 접근 정보를 한곳에서 처리하는 방법(netrc)


- 보통 리눅스에서는 .netrc파일을 통해 접속하고자하는 원격지의 아이디와 암호를 관리할 수 있습니다. .netrc 파일을 $HOME 디렉토리에 만드시면 되는데, 그 내용을 다음과 같이 구성됩니다.

사용자 계정 홈 디렉토리에 .netrc 만들어 아래 와 같이 작성한다.
- 형식
machine "호스트 정보" login "계정" password "패스워드"
ex)
vi /home/test/.netrc

machine 192.168.1.5 login test password 123456


[test@localhost ~]$ cat .netrc
machine domainname login user_id password user_pass




계정정보가 들어간 FTP 쉘 스크립트
============================================================================================================
#!/bin/sh
USERNAME="test"
PASSWORD="123456"
HOST="192.168.1.5"
PENSION_DATA_DIR="/data/source/"
GET_FILE="*.*"
#
echo `date +%Y'-'%m'-'%d`
mkdir $PENSION_DATA_DIR/`date +"%Y%m%d" --date '1 days ago'`
cd $PENSION_DATA_DIR
mv $PENSION_DATA_DIR/$GET_FILE $PENSION_DATA_DIR/`date +"%Y%m%d" --date '1 days ago'`

{ echo $USERNAME $PASSWORD
echo cd /batch/smd
echo bin
echo prompt
echo mget $GET_FILE
echo bye
} | ftp -n -v $HOST >> /home/test/batchftp.log
#
ls -al $PENSION_DATA_DIR
============================================================================================================


netrc를 사용한 FTP 쉘 스크립트
============================================================================================================
#!/bin/sh
HOST="192.168.1.5"
PENSION_DATA_DIR="/data/source"
GET_FILE="*.*"
#
echo `date +%Y'-'%m'-'%d`
mkdir $PENSION_DATA_DIR/`date +"%Y%m%d" --date '1 days ago'`
cd $PENSION_DATA_DIR
mv $PENSION_DATA_DIR/$GET_FILE $PENSION_DATA_DIR/`date +"%Y%m%d" --date '1 days ago'`

{
echo cd /batch/smd
echo bin
echo prompt
echo mget $GET_FILE
echo bye
} | ftp -v $HOST >> /home/test/batchftp.log
#
ls -al $PENSION_DATA_DIR
============================================================================================================


기타 TIP

.netrc 제대로 만들었는데도 ftp 접속이 자동으로 안될 경우에는 권한을 600 으로 주었는지 확인한다.
















.netrc

.my.cnf

.login



위의 파일들은 사용자 홈계정에 위치하는 조금은 생소한 환경설정 파일이다. (솔라리스8 리눅스는 확인 못했음)

각각의 역할은 다음과 같다.



.netrc - 자동으로 ftp 에 로그인하게 하는 역할을 한다.



machine 서버이름 login 계정 password 패스워드



.my.cnf - 자동으로 원격지 mysql에 접속하는 역할을 한다.



[client]

user=계정

password=패스워드

[mysqld]

language=korean



.login - 잘은 모르겠는데 사용자 환경에 있어 .cshrc 보다 먼저 읽히는거 같다. 아래의 내용이 들어가있다.

stty erase "^H"
stty kill "^U"
stty intr "^C"
stty eof "^D"
stty susp "^Z"
stty stop "^-"



쉘프로그램 돌릴때 stty 어쩌구 에러가 나면 위의 내용이 중복 처리된 부분이다. 이럴때 뒤져보면

.cshrc 와 .login 안에 중복 처리되있는 경우가 있다.