openssl 구축 CA 인증
1
2
3
4
5
6
tar zxvf openssl-1.0.1e.tar.gzcd openssl-1.0.1e
./confg --prefix=/usr/local/ssl shared zlib-dynamic enable-camelliamake && make installecho "/usr/local/ssl/lib/" >/etc/ld.so.conf.d/usr_local_ssl_lib.conf/sbin/ldconfig
CA 구현 소개 1. openssl 명령 을 이용 하여 암호 화 된 CA 루트 비밀 키 (- keyout 지정) 를 만 든 다음 에 자신 (- x509 인자) 이 자신 에 게 서명 하고 서명 한 (- out 지정) 파일 은 CA 의 공개 키 로 CA 비밀 키 서명 을 검증 하 는 인증서 입 니 다.
openssl req -new -x509 -passout pass:ca_password -newkey rsa:2048 -days 7305 -keyout /usr/local/nginx/demoCA/private/cakey.pem -config /usr/local/ssl/openssl.cnf -out /usr/local/nginx/demoCA/cacert.pem -subj '/C=CN/ST=ZHEJIANG/L=HANGZHOU/O=CAID/OU=CAID CA Center/CN=CAID ROOT CA/[email protected]'
2. 서버 에 사용 할 CA 인증서 만 들 기 1) 서버 비밀 키 만 들 기 및 CA 루트 에 서명 을 요청 하 는 csr 파일 만 들 기
openssl req -new -passout pass:server_password -sha1 -newkey rsa:1024 -keyout /usr/local/nginx/demoCA/private/server.key -out /usr/local/nginx/demoCA/csr/client.csr -config /usr/local/ssl/openssl.cnf -subj '/C=CN/ST=ZHEJIANG/L=HANGZHOU/O=CAID/OU=CAID Web Services/CN=127.0.0.1/[email protected]'
2) CA 루트 는 자신의 비밀 키 로. csr 에 서명 합 니 다.
openssl ca -passin pass:ca_password -days 3650 -config /usr/local/ssl/openssl.cnf -policy policy_match -extensions ssl_server -out /usr/local/nginx/demoCA/certs/server.pem -infiles /usr/local/nginx/demoCA/csr/client.csr
이렇게 하면 서버 의 비밀 키 server. key 가 생 성 됩 니 다. CA 비밀 키 에 서명 한 공개 키 server. pem, CA 루트 의 공개 키 cacert. pem 은 apache 에서 SSL 설정 지정 파 라미 터 를 설정 하면 CA 로 SSL 연결 을 검증 할 수 있 습 니 다. / * - subj 내 파 라미 터 는 인증 연결 PHP 와 일치 하면 이 정 보 를 읽 을 수 있 습 니 다 * /
3. 클 라 이언 트 에 사용 할 인증서 만 들 기 1) server - 1
openssl req -new -passout pass:user_password -sha1 -newkey rsa:1024 -keyout /usr/local/nginx/demoCA/private/client_01001.key -out /usr/local/nginx/demoCA/csr/client.csr -config /usr/local/ssl/openssl.cnf -subj '/C=CN/ST=JIANGSU/L=CHANGZHOU/O=CAID/OU=CAID_01/CN=client_01001/[email protected]'
2) server - 2 와 expect - shell 스 크 립 트 sgin. exp 서명 을 통 해 상호작용 을 하지 않 습 니 다.
expect sgin.exp ca_password 365 policy_anything ssl_client client_01001
4. CA 의 공개 키 내 보 내기, 클 라 이언 트 의 비밀 키 & CA 가 서명 한 공개 키 1) CA 의 공개 키 내 보 내기
openssl x509 -in /usr/local/nginx/demoCA/cacert.pem -out /home/samba/ca/CA_Root.cer
2) 클 라 이언 트 의 비밀 키 내 보 내기 + CA 에 서 명 된 공개 키, 파일 은 pkcs 12 형식 으로 인 코딩 되 어 출력, importpassword 는 클 라 이언 트 가 파일 을 가 져 올 때의 암호 입 니 다.
openssl pkcs12 -passin pass:user_password -export -clcerts -in /usr/local/nginx/demoCA/certs/client_01001.pem -inkey /usr/local/nginx/demoCA/private/client_01001.key -passout pass:import_password -camellia256 -out /home/samba/ca/client_01001.pfx -name "luck_01001"
이렇게 클 라 이언 트 가 CA 를 가지 고 있 습 니 다.Root.cer,client_01001.pfx。CA 가 져 오기Root. cer 파일 로 CA 가 서명 한 사 이 트 를 검증 하고 client 가 져 오기01001. pfx 파일 사이트 에서 클 라 이언 트 신분 을 검증 할 수 있 습 니 다.
5. 인증서 취 소 는 특정한 클 라 이언 트 가 사이트 SSL 보 호 를 보 는 링크 를 취소 하려 면 인증 서 를 취소 하면 됩 니 다. 1) 서명 한 client 를 취소 합 니 다.01001.pem
openssl ca -passin pass:ca_password -keyfile /usr/local/nginx/demoCA/private/cakey.pem -cert /usr/local/nginx/demoCA/cacert.pem -revoke /usr/local/nginx/demoCA/certs/client_01001.pem -config /usr/local/ssl/openssl.cnf
2) 취소 인증서 목록 crl. pem 을 생 성하 여 서버 에서 링크 가 들 어 오 는 인증서 가 사용 가능 한 지 확인 합 니 다.
openssl ca -gencrl -keyfile /usr/local/nginx/demoCA/private/cakey.pem -cert /usr/local/nginx/demoCA/cacert.pem -out /usr/local/nginx/demoCA/crl.pem -config /usr/local/ssl/openssl.cnf -passin pass:ca_password
sgin.exp
#!/usr/bin/expectset passwd [lindex $argv 0]set days [lindex $argv 1]set policy [lindex $argv 2]set extension [lindex $argv 3]set name [lindex $argv 4]spawn /usr/local/ssl/bin/openssl ca -passin pass:$passwd -days $days -config /usr/local/ssl/openssl.cnf -policy $policy -extensions $extension -out /usr/local/nginx/demoCA/certs/$name.pem -infiles /usr/local/nginx/demoCA/csr/client.csr
expect {
"y/n" { send "y\r";exp_continue }
"y/n" { send "y\r" }}
ca-install.sh
#! /bin/bashrm -rf /usr/local/nginx/demoCA/ # ca rm -rf /usr/local/nginx/conf/ssl/ # mkdir -p /home/samba/ca/ # mkdir -p /usr/local/nginx/conf/ssl/mkdir -p /usr/local/nginx/demoCA/{private,newcerts,crl,certs,csr,p12}touch /usr/local/nginx/demoCA/{serial,crlnumber,index.txt,private/.rand}#echo 0 > /usr/local/nginx/demoCA/index.txt echo 00 >/usr/local/nginx/demoCA/serialecho 00 >/usr/local/nginx/demoCA/crlnumber/usr/local/ssl/bin/openssl rand -out /usr/local/nginx/demoCA/private/.rand 1024# CA /usr/local/ssl/bin/openssl req -new -x509 -passout pass:ca_password -newkey rsa:2048 -keyout /usr/local/nginx/demoCA/private/cakey.pem -config /usr/local/ssl/openssl.cnf -out /usr/local/nginx/demoCA/cacert.pem -subj '/C=CN/ST=ZHEJIANG/L=HANGZHOU/O=CAID/OU=CAID CA Center/CN=CAID ROOT CA/[email protected]'# /usr/local/ssl/bin/openssl req -new -passout pass:server_password -sha1 -newkey rsa:1024 -keyout /usr/local/nginx/demoCA/private/server.key -out /usr/local/nginx/demoCA/csr/client.csr -config /usr/local/ssl/openssl.cnf -subj '/C=CN/ST=ZHEJIANG/L=HANGZHOU/O=CAID/OU=CAID Web Services/CN=127.0.0.1/[email protected]'# sgin.exp /usr/local/bin/expect sgin.exp ca_password 3650 policy_match ssl_server server# web , mv {/usr/local/nginx/demoCA/certs/server.pem,/usr/local/nginx/demoCA/private/server.key} /usr/local/nginx/conf/ssl//usr/local/ssl/bin/openssl rsa -passin pass:server_password </usr/local/nginx/conf/ssl/server.key >/usr/local/nginx/conf/ssl/serverkey.pem# /usr/local/ssl/bin/openssl req -new -passout pass:user_password -sha1 -newkey rsa:1024 -keyout /usr/local/nginx/demoCA/private/client_01001.key -out /usr/local/nginx/demoCA/csr/client.csr -config /usr/local/ssl/openssl.cnf -subj '/C=CN/ST=JIANGSU/L=CHANGZHOU/O=CAID/OU=CAID_01/OU=CAID_GROUP1/CN=client_01001/[email protected]'expect sgin.exp ca_password 365 policy_anything ssl_client client_01001# CA /usr/local/ssl/bin/openssl x509 -in /usr/local/nginx/demoCA/cacert.pem -out /home/samba/ca/CA_Root.cer# + CA /usr/local/ssl/bin/openssl pkcs12 -passin pass:user_password -export -clcerts -in /usr/local/nginx/demoCA/certs/client_01001.pem -inkey /usr/local/nginx/demoCA/private/client_01001.key -passout pass:import_password -camellia256 -out /home/samba/ca/client_01001.pfx -name "good luck 01001" #=============# #/usr/local/ssl/bin/openssl ca -passin pass:ca_password -revoke /usr/local/nginx/demoCA/certs/client_01001.pem -config /usr/local/ssl/openssl.cnf/usr/local/ssl/bin/openssl ca -passin pass:ca_password -gencrl -config /usr/local/ssl/openssl.cnf -out /usr/local/nginx/demoCA/crl.pem#web ln -s /usr/local/nginx/demoCA/crl.pem /usr/local/nginx/conf/ssl/crl.pem
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[오리지널] SSL 기능과 관련된 질문SSL certificate problem git에서 rabbitmq_ 다운로드 예정in_action의 원본 코드를 시험해 보면 다음과 같은 문제가 발생합니다. 네티즌 추천 해결 방법: 1. 셸 환경 변수 설정 2....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.