chromedriver/selenium 컨테이너에서 .pfx 키 인증이 필요한 사이트에 액세스할 수 있는 dockerfile 작성
7941 단어 RchromedriverRSelenium셀레늄도커
그래서, 가끔 있어요 제대로 보안하고 계시는 회사 씨.
실로 멋진 일입니다만, 레어 지나 좀처럼 정보가 없었기 때문에 돌파법만 쓰고 싶습니다.
왜 못할까
대책은 :
1. dockerfile 내에서 사용자 레벨로 추가
2. 크롬 정책에서 인증서 자동 선택 사용
입니다.
dockerfile 만들기
우선은 dockerfile 와 같은 계층에 아래와 같은 파일을 준비합니다.
/keys_dir.key_password.txt - .pfxファイルのパスワードを平文で
key.pfx
policy.json - chrome policy 設定ファイル (下記)
Chrome policy 파일의 내용은 이쪽
policy.json{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{}}"]
}
위를 준비했으면 dockerfile을 만듭니다.
FROM selenium/standalone-chrome-debug
# chrome policy
COPY keys/policies.json /etc/opt/chrome/policies/managed/
# key 関連
COPY keys/* /home/seluser/keys/
# 必要なツールをインストール
RUN sudo apt-get update
RUN sudo apt-get install libnss3-tools
# 証明書をユーザに追加
RUN mkdir -p /home/seluser/.pki/nssdb
RUN certutil -d /home/seluser/.pki/nssdb -N
RUN pk12util -d sql:/home/seluser/.pki/nssdb -i /home/seluser/keys/key.pfx -w /home/seluser/keys/key_password.txt
나머지는 원하는 이름으로 빌드합니다.
build.shdocker build --rm --force-rm -t mytools/selenium-withcert .
실행하자.
나는 다운로드에 사용하는 경우가 많기 때문에 -v로 마운트합니다.
run.shdocker run -d --restart always -v /dev/shm:/dev/shm -p 4444:4444 -p 5900:5900 -v ~/sel_dl:/home/seluser/Downloads --name selenium_cert mytools/selenium-withcert
이상입니다! ! !
꽤 정보가 없어서 조사하는 고생했습니다.
언젠가 누군가의 도움이 될 것입니다 ...
덤
어쩌면 상관 없다고 생각합니다만, 만약 위에서 잘 가지 않았던 분을 위해서,
참고까지 다른 내가 하고 있는 prefs/args의 설정도 노출해 둡니다.
(설마의 R입니다.
RSelenium_chromedriver.Rchrome_prefs =
list(
"profile.default_content_settings.popups" = 0L,
"download.prompt_for_download" = FALSE,
"download.directory_upgrade" = TRUE,
"safebrowsing.enabled" = FALSE,
"safebrowsing.disable_download_protection" = TRUE,
"acceptSslCerts" = TRUE
)
chrome_args =
c('--ignore-certificate-errors',
'--ignore-urlfetcher-cert-requests',
'--no-sandbox',
'--disable-gpu',
'--disable-web-security',
'--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100')
eCaps_withhead =
list(chromeOptions =
list(
prefs = chrome_prefs,
args = chrome_args )
)
# 初期化
remDr <- remoteDriver(
remoteServerAddr = sel_ip,
port = sel_port,
browserName = "chrome",
extraCapabilities = eCaps_withhead
)
[EOF]
Reference
이 문제에 관하여(chromedriver/selenium 컨테이너에서 .pfx 키 인증이 필요한 사이트에 액세스할 수 있는 dockerfile 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taiyodayo/items/60af57ff9d88d06a0b7e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선은 dockerfile 와 같은 계층에 아래와 같은 파일을 준비합니다.
/keys_dir.
key_password.txt - .pfxファイルのパスワードを平文で
key.pfx
policy.json - chrome policy 設定ファイル (下記)
Chrome policy 파일의 내용은 이쪽
policy.json
{
"AutoSelectCertificateForUrls": ["{\"pattern\":\"*\",\"filter\":{}}"]
}
위를 준비했으면 dockerfile을 만듭니다.
FROM selenium/standalone-chrome-debug
# chrome policy
COPY keys/policies.json /etc/opt/chrome/policies/managed/
# key 関連
COPY keys/* /home/seluser/keys/
# 必要なツールをインストール
RUN sudo apt-get update
RUN sudo apt-get install libnss3-tools
# 証明書をユーザに追加
RUN mkdir -p /home/seluser/.pki/nssdb
RUN certutil -d /home/seluser/.pki/nssdb -N
RUN pk12util -d sql:/home/seluser/.pki/nssdb -i /home/seluser/keys/key.pfx -w /home/seluser/keys/key_password.txt
나머지는 원하는 이름으로 빌드합니다.
build.sh
docker build --rm --force-rm -t mytools/selenium-withcert .
실행하자.
나는 다운로드에 사용하는 경우가 많기 때문에 -v로 마운트합니다.
run.sh
docker run -d --restart always -v /dev/shm:/dev/shm -p 4444:4444 -p 5900:5900 -v ~/sel_dl:/home/seluser/Downloads --name selenium_cert mytools/selenium-withcert
이상입니다! ! !
꽤 정보가 없어서 조사하는 고생했습니다.
언젠가 누군가의 도움이 될 것입니다 ...
덤
어쩌면 상관 없다고 생각합니다만, 만약 위에서 잘 가지 않았던 분을 위해서,
참고까지 다른 내가 하고 있는 prefs/args의 설정도 노출해 둡니다.
(설마의 R입니다.
RSelenium_chromedriver.Rchrome_prefs =
list(
"profile.default_content_settings.popups" = 0L,
"download.prompt_for_download" = FALSE,
"download.directory_upgrade" = TRUE,
"safebrowsing.enabled" = FALSE,
"safebrowsing.disable_download_protection" = TRUE,
"acceptSslCerts" = TRUE
)
chrome_args =
c('--ignore-certificate-errors',
'--ignore-urlfetcher-cert-requests',
'--no-sandbox',
'--disable-gpu',
'--disable-web-security',
'--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100')
eCaps_withhead =
list(chromeOptions =
list(
prefs = chrome_prefs,
args = chrome_args )
)
# 初期化
remDr <- remoteDriver(
remoteServerAddr = sel_ip,
port = sel_port,
browserName = "chrome",
extraCapabilities = eCaps_withhead
)
[EOF]
Reference
이 문제에 관하여(chromedriver/selenium 컨테이너에서 .pfx 키 인증이 필요한 사이트에 액세스할 수 있는 dockerfile 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taiyodayo/items/60af57ff9d88d06a0b7e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
chrome_prefs =
list(
"profile.default_content_settings.popups" = 0L,
"download.prompt_for_download" = FALSE,
"download.directory_upgrade" = TRUE,
"safebrowsing.enabled" = FALSE,
"safebrowsing.disable_download_protection" = TRUE,
"acceptSslCerts" = TRUE
)
chrome_args =
c('--ignore-certificate-errors',
'--ignore-urlfetcher-cert-requests',
'--no-sandbox',
'--disable-gpu',
'--disable-web-security',
'--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100')
eCaps_withhead =
list(chromeOptions =
list(
prefs = chrome_prefs,
args = chrome_args )
)
# 初期化
remDr <- remoteDriver(
remoteServerAddr = sel_ip,
port = sel_port,
browserName = "chrome",
extraCapabilities = eCaps_withhead
)
Reference
이 문제에 관하여(chromedriver/selenium 컨테이너에서 .pfx 키 인증이 필요한 사이트에 액세스할 수 있는 dockerfile 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taiyodayo/items/60af57ff9d88d06a0b7e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)