OpenSSL - 윈디하나의 솔라나라
|
무료는 아니다. OpenSSL에 있는 알고리즘은 저작권이 있고, 대부분 특허가 취득되어 있다. 만약 OpenSSL의 특허가 걸려있는 알고리즘을 사용하려면 사용하기 전에 법률가와 상의 하는것이 좋다. OpenSSL 컴파일 시
./config no-idea no-mdc2 no-rc5 no-ec no-ec2m no-ecdh no-ecdsa
와 같은 명령을 사용해 특허에 문제가 될만한 알고리즘은 아예 사용 안하도록 설정하는 것도 하나의 방법이다. 대부분의 리눅스 배포판과 솔라리스에 번들된 OpenSSL에는 이런 알고리즘들이 삭제되어있다. 자세한 사항은 배포 파일에 들어있는 README 파일의 PATENTS 섹션을 참고하자. ECC_patents (Wikipedia)도 읽어보자.OpenSSL License와
SSLeay License를 따른다. 쉽게 말해 GPL이 아니기 때문에 OpenSSL을 이용해 개발할 때에는 라이선스를 확인해야 할 것이다. OpenSSL의 라이선스는 GPL과 호환되지 않기 때문에 GPL을 따르는 소프트웨어를 개발할때 OpenSSL을 사용할 수 없다. 이 경우는 다른 라이브러리의 사용을 고려해야 한다.
RFC3280 path validation: sufficient to process PKITS tests. Integrated support for PVK files and keyblobs. Change default private key format to PKCS#8. CMS support: able to process all examples in RFC4134 Streaming ASN1 encode support for PKCS#7 and CMS. Multiple signer and signer add support for PKCS#7 and CMS. ASN1 printing support. Whirlpool hash algorithm added. RFC3161 time stamp support. New generalised public key API supporting ENGINE based algorithms. New generalised public key API utilities. New ENGINE supporting GOST algorithms. SSL/TLS GOST ciphersuite support. PKCS#7 and CMS GOST support. RFC4279 PSK ciphersuite support. Supported points format extension for ECC ciphersuites. ecdsa-with-SHA224/256/384/512 signature types. dsa-with-SHA224 and dsa-with-SHA256 signature types. Opaque PRF Input TLS extension support. Updated time routines to avoid OS limitations.
TLS/DTLS heartbeat support. SCTP support. RFC 5705 TLS key material exporter. RFC 5764 DTLS-SRTP negotiation. Next Protocol Negotiation. PSS signatures in certificates, requests and CRLs. Support for password based recipient info for CMS. Support TLS v1.2 and TLS v1.1. Preliminary FIPS capability for unvalidated 2.0 FIPS module. SRP support.
Suite B support for TLS 1.2 and DTLS 1.2 Support for DTLS 1.2 TLS automatic EC curve selection. API to set TLS supported signature algorithms and curves SSL_CONF configuration API. TLS Brainpool support. ALPN support. CMS support for RSA-PSS, RSA-OAEP, ECDH and X9.42 DH.
Support for ChaCha20, Poly1305, Curve25519 Remove support for all 40 and 56 bit ciphers Added ASYNC support Removed DES and RC4 ciphersuites from DEFAULT SSLv2 support has been removed
Support for TLSv1.3 Add support for SHA3, SHA512/224, SHA512/256 Add support for ARIA Add support for SipHash Heartbeat support has been removed
Providers and FIPS support Apache License 2.0 MAJOR.MINOR.PATCH Versioning Scheme Implementation of the Certificate Management Protocol EVP_KDF, EVP_MAC, Linux Kernel TLS
AES-GCM enabled with AVX512 vAES and vPCLMULQDQ
아래의 방법 중 하나를 사용해 OpenSSL을 설치하자. 솔라나라는 소스 설치
를 사용했으며 성능을 위해 소스로 설치할 것을 권한다.
공식 홈페이지이에서 소스를 받아 아래와 같이 설치하자.
windy@wl ~/src $ wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz windy@wl ~/src $ tar xvfz openssl-1.1.1s.tar.gz windy@wl ~/src $ cd openssl-1.1.1s windy@wl ~/src/openssl-1.1.1s $ ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared 1) ... Configuring OpenSSL version 1.1.1s (0x1010113fL) for solaris64-x86_64-cc 2) ... windy@wl ~/src/openssl-1.1.1s $ make ... windy@wl ~/src/openssl-1.1.1s $ make test 3) ... windy@wl ~/src/openssl-1.1.1s $ sudo make install1) 1.1.0 부터 설치디렉토리를 명시하지 않으면
/usr/local
에 설치된다. 1.0.x 버전대까지는 /usr/local/ssl
이었다.solaris64-x86_64-cc으로 빌드 한다. 이 타겟으로 빌드하면, 64비트 OpenSSL 라이브러리를 생성한다.
make test
명령으로 반드시 테스트 하자. OpenSSL 소스 배포판은 기본 컴파일러 옵션으로 전체 최적화(Full Optimization)를 준다. 최적화 옵션을 주었기 때문에 컴파일러는 최적화를 시도하는데, 이때 (흔하지는 않지만) 컴파일러 버그로 인한 테스트 실패가 발생하는 경우가 있다. 이로 인해 암호화 통신에 실패하게 된다. 만약 테스트에 실패했다면, 컴파일러를 패치 하거나, 컴파일러 버전을 바꾸거나, 설치 설정 파일의 옵션을 변경해 컴파일러 최적화 레벨을 낮춰야 한다.솔라리스 10 부터 OpenSSL 이 번들되어있다. 솔라리스 10u9의 경우 0.9.7d, 솔라리스 11.4 에는 OpenSSL 1.0.2 가 설치되어있다.
웹 서버에 보안 접속을 설정 하기 위해서는 어느 서버나 아래와 같은 과정을 거친다.
server.key파일을 생성한다.
server.csr파일을 생성한다.
server.crt,
ca.crt파일에 해당된다. 이 예제에서는 인증서 체인 생성하지 않는다.
아래 예제는 서버 관리자가 해야 하는 서버
파트와, 인증 기관이 해야 하는 CA
파트가 구분되어있다.
root@wl ~ # cd /usr/local/ssl/certs root@wl /usr/local/ssl/certs # openssl req -newkey rsa:2048 -nodes -out server.csr -keyout server.key 1) Generating a 2048 bit RSA private key .......++++++ .......++++++ writing new private key to '/usr/local/ssl/certs/root.cert' ----- 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]:KR State or Province Name (full name) [Some-State]:GyungGiDo Locality Name (eg, city) []:Suwon Organization Name (eg, company) [Internet Widgits Pty Ltd]:Solanara Organizational Unit Name (eg, section) []:SolanaraTeam Common Name (eg, YOUR name) []:www.solanara.net 2) Email Address []:admin@solanara.net Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:***** An optional company name []:Solanara root@wl /usr/local/ssl/certs # ls -alF 3) -rw-r--r-- 1 root root 956 01월 01일 00:00 server.csr -rw-r--r-- 1 root root 1.7K 01월 01일 00:00 server.key1)
openssl genrsa -out server.key 2048; openssl req -new -key server.key -out server.csr
명령과 동일하다. OpenSSL 버전이 낮으면 -newkey rsa:2048
때문에 오류 난다. 오류가 나는 경우 -new
로 대체한다.Apache HTTPd설정파일인
httpd.conf의
ServerName에 들어갈 값을 적어준다. 아파치는 이부분을 검사한다.
www.solanara.net과 같이 전체를 다 써줘도 되고,
*.solanara.net와 같이 '별표'를 사용할 수 있으며,
192.186.0.1과 같이 IP를 써도 된다. 또한 SAN을 사용할 수도 있다. (윈디하나의 솔라나라: OpenSSL - SAN 인증서 참조) 다른 내용을 쓰면 인증을 다시 받아야 하기 때문에 .csr 파일을 인증기관에 보내기 전에 반드시 확인해야 한다. 인증기관마다 허용하는 문자가 다를 수 있으니 미리 확인해야 한다.
server.key,
server.csr파일이 생성되었다.
server.key는 개인키를 담은 파일로 유출되지 않고 잃어버리지 않도록 잘 보관해야한다.
openssl.cnf
에 CA관련 내용을 입력하고, 발급한 인증서를 관리해야 한다. 이 문서에 나와있는 예제는 openssl.cnf 를 사용하지 않는다.root@wl /usr/local/ssl/certs # openssl genrsa -des3 -out ca.key 2048 1) Generating RSA private key, 2048 bit long modulus ............................++++++ ............++++++ e is 65537 (0x10001) Enter pass phrase for ca.key:***** Verifying - Enter pass phrase for ca.key: ***** root@wl /usr/local/ssl/certs # openssl req -new -x509 -days 365 -key ca.key -out ca.crt -sha256 2) Enter pass phrase for ca.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) [AU]:KR State or Province Name (full name) [Some-State]:GyungGiDo Locality Name (eg, city) []:Suwon Organization Name (eg, company) [Internet Widgits Pty Ltd]:Solanara Organizational Unit Name (eg, section) []:SolanaraTeam Common Name (eg, YOUR name) []:Solanara CA Email Address []:admin@solanara.net root@wl /usr/local/ssl/certs # ls -alF 3) -rw-r--r-- 1 root root 1.2K 01월 01일 00:00 ca.crt -rw-r--r-- 1 root root 1.7K 01월 01일 00:00 ca.key1) CA에서 사용할 개인 키를 생성하고 파일로 저장한다.
ca.key파일과
ca.crt파일이 생성되었다.
ca.key는 개인키를 담은 파일로 유출되지 않고 잃어버리지 않도록 잘 보관해야한다.
ca.crt를 운영체제의 인증서 저장소에 등록하면
인증되지 않은 CA라는 브라우저의 오류 메시지를 없앨 수 있다.
root@wl /usr/local/ssl/certs # openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -in server.csr \ -out server.crt -sha256 -CAcreateserial 1) Signature ok subject=/C=KR/ST=GyungGiDo/L=Suwon/O=Solanara/OU=SolanaraTeam/CN=wl.solanara.net/emailAddress=admin@solanara.net Getting CA Private Key Enter pass phrase for ca.key:***** root@wl /usr/local/ssl/certs # ls -alF 1) -rw-r--r-- 1 root root 1.1K 01월 01일 00:00 server.crt1)
server.crt
파일이 생성된다.
root@wl /usr/local/ssl/certs # openssl rsa -noout -text -in server.key modulus: 00:be:e2:ec:80:72:07:84:2d:cf:d0:84:37:7a:99: 16:ec:13:81:81:a7:c7:00:6a:46:d5:ed:44:15:17: ... root@wl /usr/local/ssl/certs # openssl x509 -noout -text -in server.crt ... Modulus: 00:be:e2:ec:80:72:07:84:2d:cf:d0:84:37:7a:99: 16:ec:13:81:81:a7:c7:00:6a:46:d5:ed:44:15:17:
server.key
와 server.crt
이다. 몇몇 데몬은 ca.crt
파일까지 요구하는 경우도 있다. OpenSSL 을 사용하는 웹 서버가 아니라면, 다른 형식을 요구할 수 있는데, 어차피 OpenSSL 이 생성한 인증서는 PEM형식으로 인코딩되어있기 때문에 다른 형식으로 변환 가능하다.root@wl ~ # cd /usr/local/apache2 root@wl /usr/local/apache2 # vi ./conf/httpd.conf Include conf/extra/httpd-ssl.conf root@wl /usr/local/apache2 # vi ./conf/extra/httpd-ssl.conf SSLCertificateFile "/usr/local/ssl/certs/server.crt" SSLCertificateKeyFile "/usr/local/ssl/certs/server.key" SSLCACertificateFile "/usr/local/ssl/certs/ca.crt"다른 서버에서는 각 서버의 매뉴얼을 읽어보자.
-subj
옵션을 사용해 입력해야할 데이터를 간소화할 수 있다. 위의 예에서 RSA 알고리즘의 비트수를 4096 비트로 늘였다. 아래의 예는 솔라나라의 생성 방법과 동일하다.
root@wl /usr/local/ssl/certs # openssl req -newkey rsa:4096 -nodes -out server.csr -keyout server.key \ -subj "/C=KR/ST=GyungGiDo/L=Suwon/O=Solanara/OU=SolanaraTeam/CN=*.solanara.net/emailAddress=admin@solanara.net" root@wl /usr/local/ssl/certs # openssl genrsa -des3 -out ca.key 4096 Enter pass phrase for ca.key:***** Verifying - Enter pass phrase for ca.key:***** root@wl /usr/local/ssl/certs # openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -sha256 \ -subj "/C=KR/ST=GyungGiDo/L=Suwon/O=Solanara/OU=SolanaraTeam/CN=Solanara CA/emailAddress=admin@solanara.net" Enter pass phrase for ca.key:***** root@wl /usr/local/ssl/certs # openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -in server.csr \ -out server.crt -sha256 -CAcreateserial Enter pass phrase for ca.key:***** root@wl /usr/local/ssl/certs #
root@wl ~ # vi openssl-keyusage.cnf [req] distinguished_name = req_distinguished_name req_extensions = v3_req [req_distinguished_name] C=KR ST=GyungGiDo L=Suwon O=Solanara OU=SolanaraTeam CN=*.solanara.net emailAddress=admin@solanara.net [v3_req] keyUsage = nonRepudiation, digitalSignature, keyEncipherment root@wl ~ # openssl req -newkey rsa:4096 -nodes -out server.csr -keyout server.key -config openssl-keyusage.cfg \ -subj "/C=KR/ST=GyungGiDo/L=Suwon/O=Solanara/OU=SolanaraTeam/CN=*.solanara.net/emailAddress=admin@solanara.net"
지원되는 기능: digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign, encipherOnly, decipherOnly
사용 가능한 제한 값은 RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile의 4.2.1.3. Key Usage
섹션, x509v3_config - OpenSSL을 참고하자.
Chrome 116 부터 인증서의 keyUsage 항목에 digitalSignature 와 keyEncipherment 이 있어야 한다. 그렇지 않으면 ERR_SSL_KEY_USAGE_INCOMPATIBLE 오류가 발생한다. Previous release notes - Chrome Enterprise and Education Help에 설명되어있다.
(net::ERR_CERT_COMMON_NAME_INVALID)오류가 발생하면서 접속되지 않는다. Deprecations and Removals in Chrome 58을 읽어보자. Firefox 48 부터도 신형 인증서에 한해 SAN 항목이 필수이다. (don't fall back to subject common name for name information for new certificates)
아래와 같이 SAN 인증서를 생성할 수 있다. 반드시 .cnf 파일을 사용해야 한다.
root@wl ~ # vi openssl-san.cnf
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = KR
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = GyungGiDo
localityName = Locality Name (eg, city)
localityName_default = Suwon
0.organizationName = Organization Name (eg, company)
0.organizationName_default = Solanara
organizationalUnitName = SolanaraTeam
organizationalUnitName_default = SolanaraTeam
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_default = www.solanara.net
commonName_max = 64
emailAddress = Email Address
emailAddress_default = admin@solanara.net
emailAddress_max = 64
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = ftp.solanara.net
DNS.2 = mail.solanara.net
DNS.3 = ns.solanara.net
root@wl ~ # openssl genrsa -out server.key 4096
root@wl ~ # openssl req -new -out server.csr -key server.key -config openssl-san.cnf \
-subj "/C=KR/ST=GyungGiDo/L=Suwon/O=Solanara/OU=SolanaraTeam/CN=www.solanara.net/emailAddress=admin@solanara.net"
server.key
, server.csr
파일이 생성되었을 것이다. 이 후부터는 위에서 설명한 대로 CA 에 인증서 요청을 하면 된다.
.csr 파일이 제대로 생성되었는지는 아래와 같이 확인해볼 수 있다.
root@wl /usr/local/ssl/certs # openssl req -text -noout -in server.csr ... X509v3 Subject Alternative Name: DNS:ftp.solanara.net, DNS:mail.solanara.net, DNS:ns.solanara.net ...
server.csr
에 SAN 정보가 없어도, CA에서 인증 할때 넣어줄 수 있다.
우선 아래와 같이 server.ext 파일을 생성하자. DNS.1 항목은 자신의 도메인으로 변경해 저장해야 한다. 도메인이 더 필요하면 DNS.2, DNS.3 로 항목을 넣으면 된다.
root@wl /usr/local/ssl/certs # cat server.ext authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] # DOMAIN NAMES DNS.1 = www.solanara.net #DNS.2 = ... #DNS.3 = ...
CA에서, server.crt
를 사용해 server.crt
를 만들 때 사용한 커맨드에서, 위에서 생성했던 server.ext
파일을 -extfile
옵션을 사용해 넣어주면 된다.
root@wl /usr/local/ssl/certs # openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -in server.csr \
-out server.crt -sha256 -CAcreateserial -extfile server.ext
secp384r1
을 사용했다. 사용 가능한 ECC는 openssl ecparam -list_curves
명령을 통해 알아낼 수 있다.
root@wl /usr/local/ssl/certs # openssl ecparam -name secp384r1 -genkey -out server-ecc.key root@wl /usr/local/ssl/certs # openssl req -new -key server-ecc.key -out server-ecc.csr \ -subj "/C=KR/ST=GyungGiDo/L=Suwon/O=Solanara/OU=SolanaraTeam/CN=*.solanara.net/emailAddress=admin@solanara.net"생성한
server-ecc.csr
파일을 인증기관에 보내 인증 받자. 위에서 CA가 되기단락을 진행했으면 아래와 같이 할 수 있다. 만약 자체 인증(Self-Signed)하려면
openssl req -x509 -days 365 -key server-ecc.key -in server-ecc.csr -out server-ecc.crt
명령을 사용해볼 수 있다.
root@wl /usr/local/ssl/certs # openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -in server-ecc.csr \ -out server-ecc.crt -sha256 -CAcreateserial이후에 아파치에 다음 설정을 추가하고 재시작한다.
root@wl ~ # cd /usr/local/apache2 root@wl /usr/local/apache2 # vi ./conf/extra/httpd-ssl.conf SSLCertificateFile "/usr/local/ssl/certs/server.crt" SSLCertificateFile "/usr/local/ssl/certs/server-ecc.crt" SSLCertificateKeyFile "/usr/local/ssl/certs/server.key" SSLCertificateKeyFile "/usr/local/ssl/certs/server-ecc.key" root@wl /usr/local/apache2 # apachectl stop root@wl /usr/local/apache2 # apachectl start
root@wl ~ # openssl s_client -cipher ECDHE-ECDSA-AES256-GCM-SHA384 -connect localhost:443 ... Cipher : ECDHE-ECDSA-AES256-GCM-SHA384 ...브라우저에서 ECDSA로 접속을 우선하려면 아파치의
httpd-ssl.conf
의 SSLCipherSuite
를 수정해 ECDSA를 사용하는 Cipher를 먼저 사용하도록 설정해야 한다.
인증서는 openssl dhparam
커맨드를 사용해 생성할 수 있다.
root@wl /usr/local/ssl/certs # openssl dhparam -out dhparam.5.1024.pem -5 1024 root@wl /usr/local/ssl/certs # openssl dhparam -out dhparam.2.2048.pem -2 2048
테스트는 다음과 같이 할 수 있다.
서버를 띄운다.
root@wl /usr/local/ssl/certs # openssl s_server -accept 8080 -cert server.crt -CAfile ca.crt -key server.key \ -dhparam dhparam.5.1024.pem -named_curve prime256v1 -state -verify 10 Setting temp DH parameters Setting temp ECDH parameters ACCEPT
클라이언트에서 접속해본다.
root@wl ~ # openssl s_client -connect 127.0.0.1:8080 -CAfile ca.crt ... Cipher : ECDHE-RSA-AES256-GCM-SHA384 ... Ctrl+C
openssl pkcs12
이다.
root@wl /usr/local/ssl/certs # openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name tomcat Enter Export Password:12345 Verifying - Enter Export Password:12345
-chain
, -certfile
옵션을 사용해 인증서 및 인증서 체인 파일(ca.crt
등)도 포함할 수 있다. openssl pkcs12 -export -in server.crt -inkey server.key -chain -certfile ca-chain.crt -out server.p12 -name tomcat
와 같이 실행하면된다.
server.xml
파일의 Connector
태그를 수정해 설정한다. 대부분의 자바 데몬은 설정 방법이 비슷할 것이다.
root@wl ~ # vi /usr/local/tomcat/conf/server.xml
...
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/usr/local/ssl/certs/server.p12" keystorePass="12345" keystoreType="pkcs12"
clientAuth="false" sslProtocol="TLS" />
JKS는 자바에서 사용하는 인증서 저장 형식이다. OpenSSL에서 생성한 PKCS#12 인증서를 Java SDK(Java 6 이상)에 있는 keytool(1)을 사용해 JKS형식의 인증서로 변경할 수 있다. 그 반대로도 가능하다. keytool(1) 에 대한 자세한 설명은 keytool을 읽어보자.
Warning: JKS 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12"를 사용하는 산업 표준 형식인 PKCS12로 이전하는 것이 좋습니다.
인증서 변환
PKCS#12 → JKS
root@wl ~ # keytool -importkeystore -srckeystore server.p12 -destkeystore server.jks -srcstoretype PKCS12 -deststoretype JKS 1) 대상 키 저장소 비밀번호 입력:123456 2) 새 비밀번호 다시 입력:123456 소스 키 저장소 비밀번호 입력:12345 tomcat 별칭에 대한 항목이 성공적으로 임포트되었습니다. 임포트 명령 완료: 성공적으로 임포트된 항목은 1개, 실패하거나 취소된 항목은 0개입니다.1) 이 명령은 KeyStore 파일의 Alias를 변경하지 않는다. Alias를 명시하려면
-srcalias
, -destalias
를 옵션을 사용하자.-srcstorepass
, -deststorepass
옵션으로 이 부분을 생략할 수 있다.
JKS → PKCS#12
root@wl ~ # keytool -importkeystore -srckeystore server.jks -destkeystore server.p12 -srcstoretype JKS -deststoretype PKCS12 ...
브라우저에 하드코딩되어있다. 이 의미는 브라우저 소스를 수정해 재 컴파일하지 않는 한 신뢰할 수 있는 OID 목록을 변경할 수 없다는 것을 의미하며, 결과적으로 자체인증(Self-Signed)한 EV인증서를 신뢰할 수 있는 인증서로 등록하는 것이 사실상 불가능하다는 것을 의미한다.
cacert.pem파일을 사용해 설정한다.
root@wl /usr/local/ssl/certs # wget --no-check-certificate -O ca-bundle.crt https://curl.haxx.se/ca/cacert.pem
httpd-ssl.conf
에서, SSLCACertificateFile
를 위에서 받은 항목으로 변경하자.
root@wl ~ # vi /usr/local/apache2/conf/extra/httpd-ssl.conf ... SSLCACertificateFile /usr/local/ssl/certs/ca-bundle.crt ...사설 인증서를 사용하거나 Private CA를 사용하는 경우엔 변경할 필요 없다.
wgetrc
에서 변경할 수 있다.
root@wl ~ # wget --version ... Wgetrc: /usr/local/etc/wgetrc (system) ... root@wl ~ # vi /usr/local/etc/wgetrc ... ca_certificate = /usr/local/ssl/certs/ca-bundle.crt
root@wl ~ # vi ~/.curlrc curl.cainfo="/usr/local/ssl/certs/ca-bundle.crt"
등록된 노트가 없습니다
RSS ATOM XHTML 5 CSS3 |
Copyright © 2004-2024 Jo HoSeok. All rights reserved. |