OpenSSL 0.9.8에서 만든 키를 OpenSSL 1.1.1에서도 사용하는 방법
@SECLEVEL=0
필요. nginx
/etc/nginx/conf.d/default.conf
server {
listen 80;
listen 443 ssl;
server_name localhost;
#ssl_verify_client on;
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
ssl_client_certificate /etc/nginx/certs/ca.crt;
+ ssl_ciphers 'HIGH:!aNULL:!MD5@SECLEVEL=0';
# IE11だとなぜかTLSv1.2を有効にしていると接続できない。
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.3;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Ubuntu 20.04 (OepnSSL 1.1.1)
@SECLEVEL=0
지정을 추가합니다. /etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
- SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
+ SSLCipherSuite @SECLEVEL=0:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:!DES:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
# もしくは
+ SSLCipherSuite @SECLEVEL=0:HIGH:MEDIUM:!MD5:!RC4:!3DES
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Ubuntu 16.04 (OepnSSL 1.0.2e)
@SECLEVEL=0:
의 지정은 할 수 없기 때문에 주의. LOW
지정이 1.1.0에서 삭제되었습니다. 40비트 및 56비트 암호 지원을 libssl에서 제거 ) 내가 사랑한 openssl (SSL/TLS 편) - 해봐은 상당히 묶여 감사합니다
/etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
+ SSLCipherSuite kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:!DES:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
CentOS 8
레벨 0
Everything is permitted. This retains compatibility with previous versions of OpenSSL.
Apache를 https로 활성화하려고 시도해도 시작할 수없는 경우.
/var/log/httpd/ssl_error_log
확인.key too small에 대처하기
SSL Library Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
라고 나왔을 경우,
SSLCertificateKeyFile
등을 구 서버로부터 카피해 움직인 경우라고 생각합니다.apache의 정의는 다음과 같습니다
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
오류 메시지 확인
# 起動
/usr/sbin/httpd -D FOREGROUND
# ログ確認
tail -f /var/log/httpd/ssl_error_log
SSL Library Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
CentOS 8 (7?)부터이 오류가 발생합니다.
조치 (SECLEVEL 낮추기)
데비안의 경우,
/etc/ssl/openssl.cnf
- CipherString = DEFAULT@SECLEVEL=2
+ CipherString = DEFAULT@SECLEVEL=1
Ubuntu21.04의 경우 Ubuntu 20.04 - how to set lower SSL security level? - Ask Ubuntu
※
openssl version -a
에서 빌드 시 옵션을 알 수 있다. md5는 openssl 1.1.1에 포함되어 있지 않습니다./etc/ssl/openssl.cnf
# ファイルの先頭に記述
openssl_conf = openssl_init
(略)
# ファイルの最後に記述
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
CipherString = DEFAULT@SECLEVEL=0
CentOS 8의 경우,
/etc/crypto-policies/config
- DEFAULT
+ LEGACY
설정 반영
update-crypto-policies
/etc/crypto-policies/back-ends/*.config
가 일제히 수정되었습니다. 또는 Strong crypto defaults in RHEL 8 and deprecation of weak crypto algorithms - Red Hat Customer Portal
update-crypto-policies --set LEGACY
ca md too weak에 대처
SSL Library Error: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
이 경우 SECLEVEL을 더 낮 춥니 다.
/etc/crypto-policies/back-ends/openssl.config
- @SECLEVEL=1:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:!DES:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
+ @SECLEVEL=0:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:!DES:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
update-crypto-policies
를 실시해도 /etc/crypto-policies/back-ends/openssl.config
의 내용은 변하지 않았다.update-crypto-policies --set LEGACY
의 경우 다시 씁니다. IPA
nginx 로그에 추가
/etc/nginx/nginx.conf
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
+ '$ssl_client_verify '
+ '$ssl_cipher '
+ '$ssl_protocol '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
SUCCESS
또는 NONE
Reference
이 문제에 관하여(OpenSSL 0.9.8에서 만든 키를 OpenSSL 1.1.1에서도 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tukiyo3/items/fc579fafc105a2ffd0c0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)