HTTPS/Client-authenticated: Difference between revisions
(Created new task) |
(→Tcl: Added implementation) |
||
Line 4: | Line 4: | ||
This task is in general useful for use with [[Creating a SOAP Client|webservice client]]s as it offers a high level of assurance that the client is an acceptable counterparty for the server. For example, [http://aws.amazon.com/ Amazon Web Services] uses this style of authentication. |
This task is in general useful for use with [[Creating a SOAP Client|webservice client]]s as it offers a high level of assurance that the client is an acceptable counterparty for the server. For example, [http://aws.amazon.com/ Amazon Web Services] uses this style of authentication. |
||
=={{header|Tcl}}== |
|||
Uses the [http://tls.sourceforge.net Tls] package. |
|||
<lang tcl>package require http |
|||
package require tls |
|||
set cert myCert.p12 |
|||
http::register https 443 [list \ |
|||
::tls::socket -certfile $cert -password getPass] |
|||
proc getPass {} { |
|||
return "myPassword"; # Just a noddy example... |
|||
} |
|||
# Make a secure authenticated connection |
|||
set token [http::geturl https://verysecure.example.com/] |
|||
# Now as for conventional use of the “http” package |
|||
set data [http::data $token] |
|||
http::cleanup $token</lang> |
Revision as of 10:37, 1 June 2009
You are encouraged to solve this task according to the task description, using any language you may know.
Demonstrate how to connect to a web server over HTTPS where that server requires that the client present a certificate to prove who (s)he is. Unlike with the HTTPS request with authentication task, it is not acceptable to perform the authentication by a username/password or a set cookie.
This task is in general useful for use with webservice clients as it offers a high level of assurance that the client is an acceptable counterparty for the server. For example, Amazon Web Services uses this style of authentication.
Tcl
Uses the Tls package. <lang tcl>package require http package require tls
set cert myCert.p12 http::register https 443 [list \
::tls::socket -certfile $cert -password getPass]
proc getPass {} {
return "myPassword"; # Just a noddy example...
}
- Make a secure authenticated connection
set token [http::geturl https://verysecure.example.com/]
- Now as for conventional use of the “http” package
set data [http::data $token] http::cleanup $token</lang>