렛츠 인크립트 갱신 시 해당 오류가 발생하는 경우가 있다. 문제는 80번 포트에 바인딩할 수 없다는건데 nginx(혹은 다른 웹서버)에서 80번 포트를 사용하고 있어서 갱신에 실패하였다. $ sudo certbot renew Cert is due for renewal, auto-renewing... Plugins selected: Authenticator standalone, Installer None Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org Renewing an existing certificate Performing the following challenges: http-01 challenge for www.domain.com ..
렛츠인크립트 SSL 인증서 명령어 모음입니다. # 인증서 해지 명령어 $ sudo certbot revoke --cert-name www.domain.com # 인증서 삭제 명령어 $ sudo certbot delete --cert-name www.domain.com # 인증서 발급 명령어 (서버 소유주 인증 방식) $ sudo certbot --nginx -d www.domain.com # 인증서 발급 명령어 (nginx 웹서버 인증 방식) $ sudo certbot certonly --standalone -d www.domain.com # 인증서 발급 명령어 (도메인 소유주 방식) $ sudo certbot certonly --manual --preferred-challenges dns-01 --se..
An unexpected error occurred: SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",) 인증서 발급 시 해당 오류가 발생하는 경우가 생긴다. 명령어에 --no-verify-ssl를 추가시켜주면 발급이 정상적으로 진행된다. ex) certbot --nginx -d www.domain.com --no-verify-ssl
replace함수는 스트링타입(문자열)에 프로토타입으로 들어있는 기본 함수로 첫번 째 파라미터의 값을 두번 째 파라미터의 값으로 바꾸는 함수입니다. 해당 함수를 호출하면 문자열에서 첫번 째 파라미터와 일치하는 첫번 째 문자만 두번 째 파라미터 값으로 변경됩니다. 그 뒤에 나오는 일치하는 문자는 바뀌지 않습니다. 해당 코드는 replace와 정규식을 사용한 replaceAll 기능을 하는 replace, 표준 replaceAll에 대한 코드입니다. 코드를 참고하여 일부 버전이 낮은 브라우저에서는 정규식 방식의 replaceAll을 사용하시고 버전이 높은 브라우저에서는 표준 replaceAll을 사용하시면 됩니다. let str = '회사에서 일주일에 4일만 일하는 주 4일 근무제를 도입하였다.'; str...
$("#tree").jstree({ "core" : { "themes" : { "responsive": false }, // so that create works "check_callback" : true, 'data': treedata }, "state" : { "key" : "demo2" }, "plugins" : [ "dnd", "state", "types", "contextmenu" ], 'contextmenu' : { "items" : { "create" : { "separator_before" : false, "separator_after" : true, "label" : "메뉴추가", "action" : function(t){var i=$.jstree.reference(t.reference)..
자바스크립트에서는 replaceAll 이 없다. String.prototype.replaceAll = function(target,chngWord){ return this.split(target).join(chngWord); } 이렇게 간단하게 처리가능. String.prototype.replaceAll = function(target,changeWord){ return this.replace(new RegExp(target, "g"),changeWord); } 이런 방법도 있다. '123456'.replaceAll('1','2'); //return '223456'
1. /^[a-zA-Z]/ : 첫 문자가 알파벳 소문자,대문자만 찾음 ^ : 첫문자 [a-zA-Z] : 소문자 알파벳a-z까지와 대문자 알파벳 A-Z까지 2. /^[a-zA-Z0-9]{8,20}/ : 영문 대,소문자와 숫자로 이루어진 최소 8~20자리 문자인지 확인 [0~9] 숫자인지 {8,20} : 8글자에서 20자까지 검색 3. /^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*?.,])[A-Za-z\d!@#$%^&*?.,]{9,}$/ : 알파벳 대,소문자,숫자,특수문자를 포함해야하는 9자 이상의 문자인지 확인 () : or 문과 같음 ?=.* : 한글자씩 검색하여 해당하는 글자가 나오면 더이상 검색하지 않음 ?=.*[A-Za-z] : 알파벳 대소문자중 하나라도 나오면 더이상 검색하..
가끔 IFRAME 안에 또 다른 IFRAME이 넣어져있을 경우 EX) 모달창 속의 모달창 DEPTH1 메인창 DEPTH2 모달창1 DEPTH3 모달창2 라고 하겠다. 모달창2 에서 모달창 1의 runAlert()를 실행시킬 경우 parent.runAlert()로는 작동을 하지 않는다. 그럴땐 parent.document.getElementById('depth1').contentWindow.runAlert(); 로 실행시키면 잘 작동한다.
"이 블로그의 모든 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
- Total
- Today
- Yesterday